Błąd w SQL mssms

0

Cześć, pomóżcie znaleźć błąd, błąd zjawia się przy dodaniu SUM(AGE). Ale jeżeli usunięmy (FirstName + ' ' + SecondName) AS FiSeName - wszystko działa, czemu tak?
Wylatuje błąd - Column 'Students.FirstName' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.

SELECT (FirstName + ' ' + SecondName) AS FiSeName, sum(Age), * 
FROM [Students]
WHERE Laptop = 1
ORDER BY FiSeName desc


0

Aby wykorzystać funkcję agregującą (SUM), musisz dorzucić klauzulę GROUP BY.

0

Czyli Sum działa tylko z GROUP BY?

Tak, co do reguły funkcje agregujące powinny być wykorzystywane w parze z klauzulą agregującą właśnie.

Są pewne wyjątki (+ niektóre silniki bazodanowe są bardziej liberalne od innych), np. select sum(kolumna) from tabela; nie wymaga klauzuli agregującej, ponieważ sumuje wszystkie wiersze.

Ależ jeżeli usunę pierwszą cześć select, to wszystko działa, czemu tak?

Przypuszczam, że wtedy sumowane są wszystkie wiersze razem.

Co w ogóle próbujesz osiągnąć swoim zapytaniem?

0

Na temat odpisuj w wątkach.

Zanim będę w stanie poprawić to zapytanie, musisz mi wytłumaczyć, co ma ono robić, ponieważ niestety count(age) nie styka mi zwojów i zwyczajnie nie rozumiem tego, co próbujesz osiągnąć ;-)

1 użytkowników online, w tym zalogowanych: 0, gości: 1