如何获取表中一列的值的总和。现在,如果我在下面使用查询写入,我想获得 8 和 0 的总和。
SELECT SUM(Items) FROM dbo.CustomSplit(@AssigneeProgress,',')
这给出了一个错误
操作数数据类型 varchar 对于 sum 运算符无效。
我的代码是:
DECLARE @AssigneeProgress AS VARCHAR(100)
SELECT
@AssigneeProgress = STUFF((SELECT ',' + CAST(ISNULL((((TblAssignments.PlannedDuration * 100) / 300) * TblAssignments.Progress) / 100,0) AS VARCHAR(100))
FROM TblTasks,TblAssignments
WHERE TblTasks.TaskId = TblAssignments.AssignmentEntityId
AND TblAssignments.AssignmentEntity = 'Task'
AND AssignmentStatus NOT IN ('Deleted','Cancelled')
AND TblTasks.TaskId = 63 FOR XML PATH('')), 1, 1,'')
SELECT * FROM dbo.CustomSplit(@AssigneeProgress,',')
此查询在表格中为我提供了结果,例如
Items
8
0
您的方法 CustomSplit 是否返回具有 varchar 类型的列的表?如果是,您可以转换列:
SELECT SUM(cast(Items as int)) FROM dbo.CustomSplit(@AssigneeProgress,',')
在求和之前,尝试将从拆分函数返回的Items
转换为INT
类型:
SELECT
SUM(CAST(Items AS INT))
FROM
dbo.CustomSplit(@AssigneeProgress,',')
CustomSplit
函数很可能返回varchar(x)
项。