Ich habe eine Fehlermeldung erhalten.
Die Spalte 'Employee.EmpID' ist in der Auswahlliste ungültig, weil sie weder in einer Aggregatfunktion noch in der GROUP BY-Klausel enthalten ist.
select loc.LocationID, emp.EmpID
from Employee as emp full join Location as loc
on emp.LocationID = loc.LocationID
group by loc.LocationID
Diese Situation passt zu der von Bill Karwin gegebenen Antwort.
Korrektur für oben, passt zur Antwort von ExactaBox -
select loc.LocationID, count(emp.EmpID) -- not count(*), don't want to count nulls
from Employee as emp full join Location as loc
on emp.LocationID = loc.LocationID
group by loc.LocationID
URSPRÜNGLICHE FRAGE -
Für die SQL-Abfrage -
select *
from Employee as emp full join Location as loc
on emp.LocationID = loc.LocationID
group by (loc.LocationID)
Ich verstehe nicht, warum ich diese Fehlermeldung erhalte. Ich möchte nur die Tabellen verbinden und dann alle Mitarbeiter an einem bestimmten Standort zusammenfassen.
Ich glaube, ich habe eine teilweise Erklärung für meine eigene Frage. Sagen Sie mir, ob das in Ordnung ist -
Um alle Mitarbeiter zu gruppieren, die am gleichen Standort arbeiten, müssen wir zunächst die Standort-ID angeben.
Dann können/werden wir nicht jede Mitarbeiter-ID daneben erwähnen. Stattdessen geben wir die Gesamtzahl der Mitarbeiter an diesem Standort an, d. h. wir sollten die Mitarbeiter, die an diesem Standort arbeiten, SUMMEN(). Warum wir das so machen, weiß ich nicht genau. Dies erklärt also den Teil des Fehlers, der besagt, dass er nicht in einer Aggregatfunktion enthalten ist.
Was ist die Erklärung für die GROUP BY
Klausel Teil des Fehlers?