如何获取表中一列的值的SUM。现在我希望得到8和0的SUM,如果我在下面使用查询写。
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
答案 0 :(得分:1)
您的方法CustomSplit是否返回具有varchar类型的Items项的表? 如果是,您可以转换列:
SELECT SUM(cast(Items as int)) FROM dbo.CustomSplit(@AssigneeProgress,',')
答案 1 :(得分:-1)
尝试在汇总之前将您从分割函数返回的Items
转换为INT
类型:
SELECT
SUM(CAST(Items AS INT))
FROM
dbo.CustomSplit(@AssigneeProgress,',')
CustomSplit
函数最有可能返回varchar(x)
项....