MorningStar
Neuer Benutzer
- Beiträge
- 3
Hi zusammen,
ich muss für die Uni folgende SQL Abfrage für DB2 realisieren: Geben sie alle Verlage aus, die Bücher in jeweils allen Jahren von 1995 bis 2001 verlegt habe, vorausgesetzt, dass in diesen Jahren überhaupt Bücher verlegt worden sind.
Tabellen
buch ( buchid, titel, jahr, verlagsid)
verlag(verlagsid, name, ort)
Normalerweise würde ich jetzt einfach für jeden Verlag bestimmen, ob er in einem Jahr ein Buch heraus gebracht hat mit :
SELECT v.name
FROM verlag v
WHERE v.verlagsid in (
SELECT *
FROM buch
WHERE buch.verlagsid = v.verlagsid AND jahr = xxxx
)
UND dann würde ich für alle 6 Jahre den Durchschnitt mit INTERSECT bilden. Der Nebensatz in der Aufgabe verhagelt mir hier aber die show. Da die Menge für das jahr 2000 leer ist, ist auch mein Durchschnitt leer. Die Frage ist also, wie beziehe ich die Bedingung, dass in dem Jahr überhaupt Bücher herausgebracht wurden, mit ein.
Eine erste Idee war Folgende: Ich ziehe mir die Jahre aus der Tabelle buch mit BETWEEN 1995 AND 2001 und bestimme dann für jedes Jahr die Menge an Büchern. Dann schaue ich, ob ein Verlag in allen Mengen mindestens 1 Buch hat. Allerdings habe ich keine Ahnung, wie ich das in SQL umsetzte.
Ich hoffe, jemand von euch kann mir helfen
Vielen Dank
Morni
ich muss für die Uni folgende SQL Abfrage für DB2 realisieren: Geben sie alle Verlage aus, die Bücher in jeweils allen Jahren von 1995 bis 2001 verlegt habe, vorausgesetzt, dass in diesen Jahren überhaupt Bücher verlegt worden sind.
Tabellen
buch ( buchid, titel, jahr, verlagsid)
verlag(verlagsid, name, ort)
Normalerweise würde ich jetzt einfach für jeden Verlag bestimmen, ob er in einem Jahr ein Buch heraus gebracht hat mit :
SELECT v.name
FROM verlag v
WHERE v.verlagsid in (
SELECT *
FROM buch
WHERE buch.verlagsid = v.verlagsid AND jahr = xxxx
)
UND dann würde ich für alle 6 Jahre den Durchschnitt mit INTERSECT bilden. Der Nebensatz in der Aufgabe verhagelt mir hier aber die show. Da die Menge für das jahr 2000 leer ist, ist auch mein Durchschnitt leer. Die Frage ist also, wie beziehe ich die Bedingung, dass in dem Jahr überhaupt Bücher herausgebracht wurden, mit ein.
Eine erste Idee war Folgende: Ich ziehe mir die Jahre aus der Tabelle buch mit BETWEEN 1995 AND 2001 und bestimme dann für jedes Jahr die Menge an Büchern. Dann schaue ich, ob ein Verlag in allen Mengen mindestens 1 Buch hat. Allerdings habe ich keine Ahnung, wie ich das in SQL umsetzte.
Ich hoffe, jemand von euch kann mir helfen
Vielen Dank
Morni