SQL Server查询无效

时间:2016-10-20 11:15:57

标签: sql sql-server

我在SQL Server 2014中遇到此查询时出现以下错误“操作数数据类型varchar对sum运算符无效。”

SUM (DISTINCT (studentsip.AdminNO)) AS NoOfStudentsAllocated

3 个答案:

答案 0 :(得分:1)

您的字段属于varchar类型。要在sum()中使用它,您需要convert()int

sum(distinct(convert(int,studentsip.AdminNO))) as NoOfStudentsAllocated

答案 1 :(得分:1)

如果您想计算学生人数(按照列名称建议),请使用COUNT(),而不是SUM()

COUNT(DISTINCT studentsip.AdminNO) AS NoOfStudentsAllocated

我对SQL有一定的经验。我从未使用SUM(DISTINCT)。我希望语言不允许语法。

我应该注意,如果不需要DISTINCT,那么你就不应该使用它。 DISTINCT几乎总是会减慢查询速度。

答案 2 :(得分:0)

如果您想要拥有每个AdminNo值的学生人数,您可以使用计数分组

select AdminNO, count(1) as NoOfStudentsAllocated 
from studentsip 
group by AdminNO 
order by AdminNO