Ich bin auf der Suche nach einer Lösung für bestimmte Abfrage-Problem. Ich habe eine Tabelle Abteilungen und Tabelle Mitarbeiter so entworfen:Verweis auf äußere Tabelle in einer Aggregatfunktion in einer Unterabfrage
Departments Employees
===================== ============================
ID | Name ID | Name | Surname | DeptID
--------------------- ----------------------------
1 | ADMINISTRATION 1 | X | Y | 2
2 | IT 2 | Z | Z | 1
3 | ADVERTISEMENT 3 | O | O | 1
4 | A | B | 3
Ich möchte Liste aller Abteilungen erhalten, deren Mitarbeiterzahl ist kleiner als die Anzahl der Mitarbeiter in der Verwaltung arbeiten. Das war eine meiner Ideen, aber es hat nicht funktioniert:
select * from Departments as Depts where Depts.ID in
(select Employees.ID from Employees group by Employees.ID
having count(Employees.ID) < count(case when Depts.Name='ADMINISTRATION' then 1 end));