Ich habe den folgenden Fehler mit dieser Abfrage in SQL Server 2014 "Operand Datentyp Varchar ist ungültig für Summenoperator."SQL Server-Abfrage ist ungültig
SUM (DISTINCT (studentsip.AdminNO)) AS NoOfStudentsAllocated
Ich habe den folgenden Fehler mit dieser Abfrage in SQL Server 2014 "Operand Datentyp Varchar ist ungültig für Summenoperator."SQL Server-Abfrage ist ungültig
SUM (DISTINCT (studentsip.AdminNO)) AS NoOfStudentsAllocated
Wenn Sie die Anzahl der Schüler zählen möchten (wie sie in der Spalte Name schon sagt), dann verwenden Sie COUNT()
, nicht SUM()
:
COUNT(DISTINCT studentsip.AdminNO) AS NoOfStudentsAllocated
Ich habe eine gewisse Erfahrung mit SQL. Ich habe nie SUM(DISTINCT)
verwendet. Ich wünschte, die Sprache erlaubte die Syntax nicht.
Ich sollte beachten, dass wenn Sie die DISTINCT
nicht benötigt wird, sollten Sie es nicht verwenden. DISTINCT
verlangsamt fast immer Abfragen.
Ihr Feld ist vom Typ varchar
. Um es zu nutzen in sum()
Sie es int
convert()
brauchen:
sum(distinct(convert(int,studentsip.AdminNO))) as NoOfStudentsAllocated
Wenn Sie die Anzahl der Schüler wollen, dass jeder Wert von AdminNo haben, können Sie Zählung und Gruppe von verwenden:
select AdminNO, count(1) as NoOfStudentsAllocated
from studentsip
group by AdminNO
order by AdminNO
Sieht ziemlich klar? Sie versuchen, die Summe einer Spalte von Zeichenfolgen zu erhalten ... – Ivar
COUNT anstelle von SUM? – dean
Was möchten Sie tun? Überprüfen Sie den Datentyp von AdminNO @Weeliang Koh –