Hallo,
ich habe es auch mal versucht, ist recht komplex geworden:
Code: Alles auswählen
SELECT "Haben"."Artnr.", "Haben"."Haben"-ifnull("Soll"."Soll",0) as "Bestand" FROM
(SELECT "Stückliste"."Artnr.", SUM( "Warenausgang"."Stück" * "Stückliste"."Menge" ) AS "Soll"
FROM "Warenausgang", "Produkte", "Stückliste"
WHERE "Warenausgang"."Prodnr." = "Produkte"."Prodnr."
AND "Stückliste"."Prodnr." = "Produkte"."Prodnr."
GROUP BY "Stückliste"."Artnr.") as "Soll"
RIGHT OUTER JOIN
(SELECT "Artikel"."Artnr.", ifnull( "WE"."SE", 0 ) + "Artikel"."Best.Inventur" AS "Haben"
FROM
( SELECT "Artnr.", SUM( "Menge" ) AS "SE"
FROM "Wareneingang"
GROUP BY "Artnr." ) AS "WE"
RIGHT OUTER JOIN
"Artikel" ON "WE"."Artnr." = "Artikel"."Artnr.")
as "Haben"
ON "Soll"."Artnr." = "Haben"."Artnr."
Hier wird der aktuelle Bestand wie folgt pro Artikelnummer errechnet:
Addiere Wareneingang zu Inventurbestand und sutrahiere Menge Artikel pro Produkt * Warenausgangsmenge der Produkte.
Und das gruppiert nach der Artikelnummer.
Beispiel Artikelnummer EA.650.34..0081:
Inventur: 10
Wareneingang1: 100
Wareneingang2: 100
Warenausgang1 Prodnr. 30.
321.00..0001: 1000*
5
Warenausgang2 Prodnr. 30.
321.00..0001: 20*
5
Warenausgang3 Prodnr. 30.
320.00..0001: 50*
1
also 10+100+100-5000-100-50 =
-4940
Anbei deine DB mit der entsprechenden Abfrage und einem Formular "Warenkontrolle"
Beste Grüsse R