Hallo,
Ich habe eine Tabelle T_Bestellung diese ist 1:N an eine T_BestellungWareneingang gebunden.
Zu einer Bestellung gehört eine Bestellfiliale und eine Bestellmenge.
Zu einem Wareneingang gehört der Bestellungsschlüssel und eine Wareneingangsmenge.
Ziel meines SQL-Statements soll es sein, dass die noch offenen Bestellmengen angezeigt werden. Diese jedoch nur nach der Bestellfiliale grupiert. Hier mein Statement:
SELECT
t_bestellung.nbestellfilialekey,
t_bestellung.nmenge - COALESCE( SUM(t_bestellungwe.nmengewe ), 0 )
FROM
t_bestellung
LEFT JOIN t_bestellungwe on (t_bestellung.nbestellungkey = t_bestellungwe.nbestellungkey)
WHERE
t_bestellung.nartikelkey = 54265 AND
NWEFLAG != 2 AND
DTDATUMSTORNO IS NULL
GROUP BY
t_bestellung.nbestellfilialekey
ORDER BY
t_bestellung.nbestellfilialekey ;
Folgender Sachverhalt:
Bestellung 1 (Filiale 3) hat 20 Artikel bestellt und 2 Wareneingänge mit jeweils 5 stück und 3 stück.
Bestellung 2 (Filiale 3) hat 7 Artikel bestellt und 2 Wareneingänge mit jeweils 1 stück und 2 stück.
Das Resultat soll sein:
1 Datensatz mit Bestellfiliale = 3 und Menge = ( 20 - (3+5) ) + ( 7 - (1+2 ) ) = 16
Bei meinem Statement oben muss ich leider nach t_bestellung.nmenge grupieren, jedoch erhalte ich dann 2 Datensätze.
Welche Aggregatsfunktion habe ich hier für t_bestellung.nmenge zu verwenden, damit meine Abfrage nur einen Datensatz ergibt