Group BY über mehrere Tabellen?
Fabienne
- datenbank
Hallo zusammen,
folgendes Problem:
Tabelle 1: auftrag
id | kunden_id | datum
Tabelle 2: artikel
id | auftrag_id | artikel_name | mengen_kunden_id | bestand
Folgendes Problem:
Es gibt Kunden, die Auftragsbzogen abgewickelt werden und andere Kunden, die Mengenbezogen abgewickelt werden.
Heißt, ich vergwaltige die Tabelle 2 und packe dort beide Typen rein (einmal vom Auftragskunden die Einzelartikel und vom Mengenkunden einfach alle Artikel ohne Auftragsbezug).
Jetzt will ich den Gesamtbestand des Artikels XY auf Kundenbasis wissen:
SELECT SUM(bestand) FROM artikel WHERE artikel.auftrag_id=auftrag.id
GROUP BY auftrag.kunden_id,artikel.mengen_kunden_id
Ja, ich weiß, dass das Käse ist. Ich möchte aber, dass quasi die Splate auftrag.kunde_id und artikel.mengen_kunden_id gleichbedeutend in dem GROUP-Statement behandelt werden.
Am Schluss will ich die Gesamtsumme der Artikel auf Kundenbasis wissen.
Ausprobiert hab ich schon sowas der Art:
SELECT SUM(),auftrag.kunden_id AS kunden_id_group, artikel.mengen_kunden_id AS kunden_id_group FROM ..... GROUP BY kunden_id_group
Hat jemand eine (bessere) Lösung?
Beste Grüße
Fabienne
Nachtrag:
Sowas der Art geht auch scheinbar auch nicht:
GROUP BY if(b.kunden_id!='0',0,1)b.kunden_id, if(a.mengen_kunden_id!='0',0,1)a.mengen_kunden_id )
Das Group-Problem hab ich zwar nicht gelöst, aber zumindest eine Lsung für mein Problem gefunden:
Ich lege einfach einen Dummyauftrag an, der ansonsten keine Beachtung findet. Damit kann ich das GROUP BY-Statement ganz normal lassen.