У меня возникла следующая ошибка с этим запросом в SQL Server 2014 «Тип данных операнда varchar недействителен для оператора сумм».Ошибка SQL Server Query
SUM (DISTINCT (studentsip.AdminNO)) AS NoOfStudentsAllocated
У меня возникла следующая ошибка с этим запросом в SQL Server 2014 «Тип данных операнда varchar недействителен для оператора сумм».Ошибка SQL Server Query
SUM (DISTINCT (studentsip.AdminNO)) AS NoOfStudentsAllocated
Если вы хотите, чтобы подсчитать количество студентов (как предложено по имени столбца), а затем использовать COUNT()
, не SUM()
:
COUNT(DISTINCT studentsip.AdminNO) AS NoOfStudentsAllocated
У меня есть определенный опыт работы с SQL. Я никогда не использовал SUM(DISTINCT)
. Я хочу, чтобы язык не позволял синтаксис.
Следует отметить, что если DISTINCT
не требуется, вы не должны его использовать. DISTINCT
почти всегда замедляет запросы.
Ваше поле относится к модели varchar
. Для того, чтобы использовать его в sum()
вам нужно convert()
его int
:
sum(distinct(convert(int,studentsip.AdminNO))) as NoOfStudentsAllocated
Если вы хотите, количество студентов, имеющих каждое значение AdminNo, вы можете использовать количество и группу по:
select AdminNO, count(1) as NoOfStudentsAllocated
from studentsip
group by AdminNO
order by AdminNO
Выглядит довольно ясно? Вы пытаетесь получить сумму столбца строк ... – Ivar
COUNT вместо SUM? – dean
что вы пытаетесь сделать? проверьте тип данных AdminNO @Weeliang Koh –