Seite 1 von 1
Lagerbestand
Verfasst: Do, 20.12.2012 16:15
von ko8910
Hallo zusammen,
Ich möchte für unsere Firma ein kleines Lagerprogramm erstellen. Jetzt habe ich allerdings ein kleines Problem mit der Stückliste. Und zwar gibt es ca 150 Produkte mit zugehörigen rund 260 Artikeln.
Stückliste sieht so aus.
[code]…[/code]-Tags zur besseren Lesbarkeit eingebaut—lorbass, Mod
Nun habe ich einen Warenausgang und möchte wenn ich Produkt 1 xmal liefere mir die Anzahl der Artikel vom Bestand abgezogen wird. Im Lager sind nur die Artikel vorrätig die Produktnummer definiert nur die zusammengesetzten Artikel. Nun ist das Problem das in der Stückliste gleiche Artikel in mehreren Produkten vorkommen, so das mir vom Bestand die Artikel von Produkt eins abgezogen werden jedoch nicht vom Produkt 2 sobald die Artikel identisch sind. Ich hoffe das ganze ist jetzt nicht zu Konfus .
Ich würde mich freuen wenn mir jemand einen Rat geben könnte,da ich ziemlicher Anfänger in der Sache bin. Ich habe meine Datei mal mit hochgeladen falls es damit verständlicher wird.
Vielen Dank
Re: Lagerbestand
Verfasst: Do, 20.12.2012 18:21
von RobertG
Ich habe mir die Datenbank einmal heruntergeladen. Jetzt müsste ich nur wissen, bei welchen Abfragen Du andere Ergebnisse erwartest, als sie Deine Abfragen liefern. Aus dem von Dir geschilderten Vorgehen werde ich nämlich nicht so ganz schlau, da das alles nur Begriffe ohne handfesten Gegenstand sind.
Ein handfestes Beispiel wäre für mich z.B. eine Möbeltischlerei. Es werden verschiedene Möbelarten hergestellt - die Produkte. Viele dieser verschiedenen Möbel brauchen während des Herstellungsprozesses Holzdübel - die Artikel. Habe ich also 100 Holzdübel und brauche für einen Schrank davon 60 Stück, für eine Schubladenbox noch einmal 48 Stück, dann kann ich natürlich nicht einen Schrank und eine Schubladenbox herstellen. Es ändert sich aber nur der Bestand der Dübel, und dazu muss ich doch nicht irgendetwas an dem Datensatz ändern, der mit den Möbeln zu tun hat. Da schaue ich einmal nach, wie viele Dübel pro Schrank notwendig sind und ziehe diese Zahl von den ursprünglich vorhandenen Dübeln ab - und das war's.
Gruß
Robert
Re: Lagerbestand
Verfasst: Do, 20.12.2012 23:11
von ko8910
Erst mal Danke das du dir schon mal diese Mühe gemacht hast. Also die Datenbank hatte ich nur angehangen damit man sieht wie die Stückliste aufgebaut ist. Es handelt sich hier um Sanitärartikel. Ich bekomme eine Bestellung sagen wir mal Produkt 30.340.00..001 Entlüftungsventil....das besteht aus mehreren Artikeln unterschiedlicher Stückzahl...Artikel 1; 5 Stück Artikel 2 4 Stück usw. Jetzt möchte ich wenn ich 10 mal
Produkt 30.340.00..0001 im Warenausgang buche das mir im Bestand die Artikel abgezogen werden. Jetzt weiß ich nicht wie ich es gestalten muss das ich anhand der Produktnummer die dazugehörigen Artikel im Bestand abgezogen bekomme.
Ich hoffe das war jetzt etwas verständlich.
Vielen Dank
Re: Lagerbestand
Verfasst: Fr, 21.12.2012 08:14
von RobertG
Wenn ich das richtig sehe, dann müsstest Du also von
Wareneingang.Menge
Stückliste.Menge * Warenausgang.Stück
abziehen.
Wenn ich so eine Abfrage zusammenstelle, dann sehe ich aber, dass viel mehr Stück im Warenausgang stehen, als je im Wareneingang verzeichnet waren. Entweder stimmen die Dummy-Eingaben nicht, oder ich habe da noch etwas falsch verstanden.
Meine Abfrage bisher:
Code: Alles auswählen
SELECT
"Wareneingang"."Artnr.",
SUM( "Wareneingang"."Menge" ) AS "Summe_Eingang",
SUM( "Stückliste"."Menge" ) AS "Menge_Stückliste",
SUM( "Warenausgang"."Stück" ) AS "Ausgang_Stück",
SUM( "Stückliste"."Menge" )* SUM( "Warenausgang"."Stück" ) AS "Ausgang_gesamt",
SUM( "Wareneingang"."Menge" ) - SUM( "Stückliste"."Menge" )* SUM( "Warenausgang"."Stück" ) AS "Saldo"
FROM "Stückliste", "Wareneingang", "Warenausgang"
WHERE "Stückliste"."Artnr." = "Wareneingang"."Artnr."
AND "Warenausgang"."Prodnr." = "Stückliste"."Prodnr."
GROUP BY "Wareneingang"."Artnr."
Gruß
Robert
Re: Lagerbestand
Verfasst: Fr, 21.12.2012 15:10
von F3K Total
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
Re: Lagerbestand
Verfasst: Fr, 21.12.2012 23:38
von ko8910
Hallo zusammen,
Also ich muss wirklich sagen Riesen Respekt , das es hier Leute gibt die sich Zeit nehmen, um sich mit den Problemen anderer zu beschäftigen und das in dieser Geschwindigkeit, wirklich toll.
@ Robert
Ich denke bei deiner Lösung gibt es noch ein paar Unstimmigkeiten , liefert nicht ganz die Ergebnisse die ich mir vorgestellt habe , vllt habe ich es aber zu kompliziert erklärt, ist nicht so einfach sich in Schriftform immer gleich zu verstehen

aber Danke für deine Bemühungen.
@ F3K Total
Vielen Dank ist genau das was ich mir vorgestellt habe, funktioniert einwandfrei.
Nochmals Vielen Dank Euch beiden, das ihr mir hier so schnell geholfen habt, das hat mich wirklich einen riesen Schritt voran gebracht. Wünsche euch ein schönes Weihnachtsfest geniesst die Tage mit Familie und Freunden
Grüße der Mike