Theoretische Frage zu einer Abfrage mit Union?!

DreadnoxXx

Neuer Benutzer
Beiträge
1
Hallo an alle und gleich zu meiner Frage...:)
Ich soll Supervisors anzeigen lassen die weniger als zwei Untergebene haben?
Ich sollte jetzt hier zudem noch einen outer Join hinein basteln, was an sich ja kein Problem ist, mich würde allerdings davor interessieren, warum das ganze nicht so funktioniert?

-- liefert 3 Supervisor mit 1 Untergebenen (Staff Testdaten)

SELECT EmpID, name, gender, salary, positionFROM StaffWHERE EmpID IN (SELECT supervisorFK FROM Staff
GROUP BY supervisorFK
HAVING Count(*)< 2)AND position ='Supervisor'

UNION

SELECT EmpID, name, gender, salary, positionFROM StaffWHERE EmpID NOT IN (SELECT DISTINCT supervisorFK FROM Staff )AND position ='Supervisor';


Leider funktioniert das so nicht. Kann mir jemand helfen?
Wäre super wenn mir jemand auf die Sprünge helfen könnte, falls jemand noch Rohdaten braucht die könnte ich auch zur Verfügung stellen.
 
Werbung:
Hallo an alle und gleich zu meiner Frage...:)
Ich soll Supervisors anzeigen lassen die weniger als zwei Untergebene haben?
Ich sollte jetzt hier zudem noch einen outer Join hinein basteln, was an sich ja kein Problem ist, mich würde allerdings davor interessieren, warum das ganze nicht so funktioniert?

Leider funktioniert das so nicht. Kann mir jemand helfen?
Wäre super wenn mir jemand auf die Sprünge helfen könnte, falls jemand noch Rohdaten braucht die könnte ich auch zur Verfügung stellen.

'Funktioniert leider nicht' ist nicht wirklich eindeutig. Wirf das mal bei Google ein und Du wirst verstehen.

zeig einfach mal ein kleines Beispiel mit auf das nötigste reduzierten Tabellen und Werten. Dir ist bekannt, daß UNION doppelte Datensätze ausfiltert?
 
In SQL Studio gibts normalerweise konkrete Fehlermeldungen, ich würde hier einfach mal tippen das er kein GROUP BY und UNION gleichzeitig macht, aber das ist jetzt nur geraten.
 
In SQL Studio gibts normalerweise konkrete Fehlermeldungen, ich würde hier einfach mal tippen das er kein GROUP BY und UNION gleichzeitig macht, aber das ist jetzt nur geraten.

Glaube ich eher nicht, daß das nicht geht:

Code:
test=# select s, 'test' from generate_Series(1,5) s group by s union select 2, 'bla';
 s | ?column?
---+----------
 3 | test
 4 | test
 1 | test
 2 | test
 5 | test
 2 | bla
(6 rows)

Andreas
 
Werbung:
Stimmt aber je nachdem wie der Fragensteller "funktioniert nicht" definiert erfüllt es vieleicht nicht seine Erwartungen weil er das GROUP BY nur in einem Select hat. Wir stochern nur...
 
Zurück
Oben