Hallo,
ich habe folgendes Problem mit einer SQL Abfrage, die ich nicht auf die Reihe bekommen.
Ich habe folgende Tabellen (hier mal gekürzt):
tab_f: ID, Abteilung, Kunde, .... => Tabelle mit Kundendaten
Muster:
1, Einkauf, Müller,
2, Controlling, Meier,
3, Einkauf, Schmid,
tab_l: ID, fID, Katalog, Subkatalog, => Tabelle mit Katalogen
1, 1, Rohrstecksysteme, Katalog 2011
2, 2, Toilettensitze, Katalog 2011
2, 2, Toilettensitze, Katalog 2012
3, 2, Rohrstecksysteme, Katalog 2011
3, 2, Rohrstecksysteme, Katalog 2012
tab_d: ID, fID, Artikel, Preis, ... => Tabelle mit Artikeln
1, 1, Badewanne, 150
1, 2, Duschkabine, 250
Ich brauche jetzt folgendes:
SELECT tab_f.Abteilung, SUM(tab_d.Preis) as GESPREIS FROM tab_f LEFT JOIN tab_d ON tab_f.ID = tab_d.fID WHERE ....
Ich möchte also nach Abteilungen die Summe der Preise. Das ist recht einfach. Jetzt sollen nur die Abteilungen einfließen, die in der tab_l mindestens einen Eintrag mit dem Katalog "Rohrstecksysteme" habe. Das Ist mein Problem. Ich könnte einen LEFT JOIN machen, bekomme dann allerdings die Einträge gleich mehrfach, da ein Kunde mehrere Kataloge "Rohrstecksysteme" haben kann. Daher geht meiner Meinung nach kein JOIN. Aber ich kann im WHERE Teil ja auch keine SQL-Abfrage schachteln oder?
Hat jemand eine Idee?
Die Tabellen dürfen nicht modifiziert werden.
ich habe folgendes Problem mit einer SQL Abfrage, die ich nicht auf die Reihe bekommen.
Ich habe folgende Tabellen (hier mal gekürzt):
tab_f: ID, Abteilung, Kunde, .... => Tabelle mit Kundendaten
Muster:
1, Einkauf, Müller,
2, Controlling, Meier,
3, Einkauf, Schmid,
tab_l: ID, fID, Katalog, Subkatalog, => Tabelle mit Katalogen
1, 1, Rohrstecksysteme, Katalog 2011
2, 2, Toilettensitze, Katalog 2011
2, 2, Toilettensitze, Katalog 2012
3, 2, Rohrstecksysteme, Katalog 2011
3, 2, Rohrstecksysteme, Katalog 2012
tab_d: ID, fID, Artikel, Preis, ... => Tabelle mit Artikeln
1, 1, Badewanne, 150
1, 2, Duschkabine, 250
Ich brauche jetzt folgendes:
SELECT tab_f.Abteilung, SUM(tab_d.Preis) as GESPREIS FROM tab_f LEFT JOIN tab_d ON tab_f.ID = tab_d.fID WHERE ....
Ich möchte also nach Abteilungen die Summe der Preise. Das ist recht einfach. Jetzt sollen nur die Abteilungen einfließen, die in der tab_l mindestens einen Eintrag mit dem Katalog "Rohrstecksysteme" habe. Das Ist mein Problem. Ich könnte einen LEFT JOIN machen, bekomme dann allerdings die Einträge gleich mehrfach, da ein Kunde mehrere Kataloge "Rohrstecksysteme" haben kann. Daher geht meiner Meinung nach kein JOIN. Aber ich kann im WHERE Teil ja auch keine SQL-Abfrage schachteln oder?
Hat jemand eine Idee?
Die Tabellen dürfen nicht modifiziert werden.
Comment