the_notwist
Grünschnabel
Hallo zusammen,
ich muss für mein Studium eine SQL-Abfrage schreiben, an der ich mittlerweile am verzweifeln bin!
Ich versuche mal den Sachverhalt so verständlich wie möglich darzustellen:
In der Grafik im Anhang kann man sehen, dass es u.a. die Tabellen LAGERBESTAND und TEILE gibt.

Die Aufgabe lautet lapidar: " In welchem Lager werden die meisten Artikel (Typ = 'Artikel') gelagert? Geben Sie die LANR aus!"
Klingt einfach, ist aber schwerer, da ja nur die LANR ausgegeben werden soll. Somit fällt eine Gruppenfunktion in der SELECT-Klausel weg. Ich habe schon versucht in der WHERE-Klausel mit MAX(SUM(Lagerbestand.BESTAND) zu schachteln, aber das gibt kein Ergebnis. Auch mit HAVING hatte ich keinen Erfolg.
Folgend noch meine bisherigen Ansätze:
1.
SELECT Lagerbestand.LANR
FROM Lagerbestand INNER JOIN Teile ON Lagerbestand.TNR=Teile.TNR
WHERE Teile.TYP = 'Artikel'
GROUP BY Lagerbestand.LANR
HAVING SUM(Lagerbestand.BESTAND) > 9000
--> Das liefert die richtige Trefferzeile aber ist mit > 9000 künstlich eingeschränkt. Die Abfrage muss allgemeingültig sein.
2.
SELECT Lagerbestand.LANR, SUM(Lagerbestand.LANR)
FROM Lagerbestand INNER JOIN Teile ON Lagerbestand.TNR=Teile.TNR
WHERE Lagerbestand.BESTAND = (SELECT MAX(SUM(Lagerbestand.LANR)) FROM Lagerbestand GROUP BY Lagerbestand.LANR)
GROUP BY Lagerbestand.LANR
--> Hier habe ich es mit einer Unterabfrage versucht, komme aber auch nicht weiter.
Wäre echt toll, wenn jemandem dazu was einfallen würde.
Wenn noch Infos fehlen, kann ich diese gerne nachreichen.
Gruß
Dominik
ich muss für mein Studium eine SQL-Abfrage schreiben, an der ich mittlerweile am verzweifeln bin!
Ich versuche mal den Sachverhalt so verständlich wie möglich darzustellen:
In der Grafik im Anhang kann man sehen, dass es u.a. die Tabellen LAGERBESTAND und TEILE gibt.

Die Aufgabe lautet lapidar: " In welchem Lager werden die meisten Artikel (Typ = 'Artikel') gelagert? Geben Sie die LANR aus!"
Klingt einfach, ist aber schwerer, da ja nur die LANR ausgegeben werden soll. Somit fällt eine Gruppenfunktion in der SELECT-Klausel weg. Ich habe schon versucht in der WHERE-Klausel mit MAX(SUM(Lagerbestand.BESTAND) zu schachteln, aber das gibt kein Ergebnis. Auch mit HAVING hatte ich keinen Erfolg.
Folgend noch meine bisherigen Ansätze:
1.
SELECT Lagerbestand.LANR
FROM Lagerbestand INNER JOIN Teile ON Lagerbestand.TNR=Teile.TNR
WHERE Teile.TYP = 'Artikel'
GROUP BY Lagerbestand.LANR
HAVING SUM(Lagerbestand.BESTAND) > 9000
--> Das liefert die richtige Trefferzeile aber ist mit > 9000 künstlich eingeschränkt. Die Abfrage muss allgemeingültig sein.
2.
SELECT Lagerbestand.LANR, SUM(Lagerbestand.LANR)
FROM Lagerbestand INNER JOIN Teile ON Lagerbestand.TNR=Teile.TNR
WHERE Lagerbestand.BESTAND = (SELECT MAX(SUM(Lagerbestand.LANR)) FROM Lagerbestand GROUP BY Lagerbestand.LANR)
GROUP BY Lagerbestand.LANR
--> Hier habe ich es mit einer Unterabfrage versucht, komme aber auch nicht weiter.
Wäre echt toll, wenn jemandem dazu was einfallen würde.
Wenn noch Infos fehlen, kann ich diese gerne nachreichen.
Gruß
Dominik