SQL Abfrage - Zeilen die nicht enthalten sind
-
Hallo,
ich hänge gerade an einer SQL Abfrage und bekomme es nicht hin. Ich habe 3 Tabellen. Es geht um Studiengänge, von denen einer, zwei oder alle in einem Jahr durchgeführt werden.
Tabelle Jahr
ID Bezeichnung
1 2009
2 2010
3 2011Tabelle Studiengang
ID Bezeichnung
1 SG 1
2 SG 2
3 SG 3Tabelle Durchfuehrung
SG_ID J_IDIn der Tabelle Durchfuehrung wird ersichtlich, welcher der 3 Studiengänge in welchem Jahr durchgeführt wird. Steht darin z.B. der Datensatz 1-1, dann wurde im Jahr 2009 der Studiengang SG 1 durchgeführt.
Jetzt möchte ich eine Abfrage, die als Ergebnis die Bezeichnung der Studiengänge zurückgibt, welche in einem Jahr NICHT durchgefürt worden. Wenn in einem Jahr alle in der Tabelle Studiengang enthaltenen Studiengänge durchgeführt worden, dann soll die Abfrage leer sein. Übergeben wird der Abfrage der Parameter Jahr (also z.B. 2009).
Ich bekomm es zwar hin, dass alle Studiengänge anzeigt werden, die durchgeführt worden, aber ich will es ja gerade andersrum.
Ich hoffe, ihr könnt mir helfen.
Danke!
-
BSMemmingen schrieb:
Ich bekomm es zwar hin, dass alle Studiengänge anzeigt werden, die durchgeführt worden, aber ich will es ja gerade andersrum.
Ich würde vermutlich "NOT IN (sub-select)" verwenden.
AlsoSELECT * FROM [Studiengang] WHERE [ID] NOT IN (...)
-
Ok, ich habs:
Select s.Bezeichnung From Studiengang s
Where s.Studiengang_ID Not In (Select d.Studiengang_ID From Durchfuehrung d, Jahr j Where j.Jahr_ID=d.Jahr_ID And j.Bezeichnung='2009')Jetzt raucht mir der Kopf...