ich eine SQL-Tabelle haben Agenten genannt, die wie folgt aussieht: SQL verschachtelt Summe Abfrage
Es
ist ein Anspruch in den Daten, dass bestimmte Mittel ein höheres Gehalt als die Summe dieser Mittel verdienen dass sie beaufsichtigen. Ich habe die folgende SQL-Abfrage geschrieben, um den Namen des Agenten, sein persönliches Gehalt und die Summe der Gehälter derjenigen, die er überwacht, abzurufen. Nur Agenten, deren persönliches Gehalt höher als 60000 ist, müssen angezeigt werden.SELECT Agent.Agentname AS ["Supervisor Name"], Agent.Salary,
(SELECT SUM(Agent.salary) FROM Agent
WHERE Agent.Supervisor IS NOT NULL
GROUP BY Agent.Supervisor;)
AS ['Sum of Subordinate Salaries']
FROM Agent
WHERE (((Agent.[Supervisor]) Is Not Null) AND ((Agent.[salary])>=60000))
GROUP BY Agent.AgentName
Ich erhalte eine Fehlermeldung, durch welches sagt: „Ihre Anfrage enthält nicht den angegebenen Ausdruck‚Gehalt‘als Teil einer Aggregatfunktion“.
Wie kann ich die Abfrage korrigieren und die gewünschten Ergebnisse daraus erhalten?
Wenn Sie dieselbe Tabelle mehrmals in einer Abfrage verwenden, qualifizieren Sie die Spalten mit Tabellenaliasnamen - um sie klarer zu machen. – jarlh
@jarlh Ich habe es getan, aber der gleiche Fehler tritt immer noch auf. –
Gehalt ist weder aggregiert noch in der 'Gruppe von' ... Das ist das Problem – JohnHC