[MSSQL/T-SQL] zusammenfassende Verkaufszahlen über Stücklisten - Druckversion +- PHP Rocks (https://www.php-rocks.de) +-- Forum: Datenbanken (https://www.php-rocks.de/https://www.php-rocks.de/forum/6-datenbanken.html) +--- Forum: Andere SQL Datenbanken (https://www.php-rocks.de/https://www.php-rocks.de/forum/9-andere-sql-datenbanken.html) +--- Thema: [MSSQL/T-SQL] zusammenfassende Verkaufszahlen über Stücklisten (/https://www.php-rocks.de/thema/126-zusammenfassende-verkaufszahlen-ueber-stuecklisten.html) Seiten:
1
2
|
zusammenfassende Verkaufszahlen über Stücklisten - Arne Drews - 06.02.2017 Hallo, Ich mache mir glaube ich das Leben gerade selbst schwer. Im Prinzip eine einfache Aufgabe, ich möchte Verkaufszahlen eines bestimmten Artikels ermitteln: Code: SELECT sum(vp.Menge) Nun gibt es allerdings Handelsstücklisten, die sich aus Positionen einzelner Artikel zusammensetzen. Ich muss nun alle Handelsstücklisten-Verkäufe berücksichtigen, in denen der Artikel 0815 enthalten ist: Code: SELECT sum(vp.Menge) Das könnte man natürlich einfach zusammenführen: Code: SELECT sum(vp.Menge) Allerdings kann die 0815 auch mit Menge > 1 in einer Stückliste vorhanden sein. Wenn also die 0815 in der Stückliste A 2x vorkommt, muss natürlich auch die verkaufte Menge der Stückliste mit 2 multipliziert werden. Und hier stehe ich grad auf dem Schlauch, weil ich nicht drauf komme, wie ich das zusammenfassen soll. Vielleicht bin ich auch auf dem falschen Weg? Danke für Hinweise und Tipps! Gruß Arne RE: zusammenfassende Verkaufszahlen über Stücklisten - Till - 08.02.2017 Hallo Arne Code: Vielleicht bin ich auch auf dem falschen Weg? Code: Im Prinzip eine einfache Aufgabe, ich möchte Verkaufszahlen eines bestimmten Artikels ermitteln: Code: Nun gibt es allerdings Handelsstücklisten, die sich aus Positionen einzelner Artikel zusammensetzen. Code: Nun gibt es allerdings Handelsstücklisten "Verkaufspositionen " Wenn Du diese Tabelle Verkaufspositionen hast solltest Du auch alle Verkaufspositionen dort hinein schreiben. Code: vp.Artikelnummer Kannst Du die DB-Struktur konkretisieren. Code: Wenn also die 0815 in der Stückliste A 2x vorkommt, muss natürlich auch die verkaufte Menge der Stückliste mit 2 multipliziert werden. Code: Und hier stehe ich grad auf dem Schlauch, weil ich nicht drauf komme, wie ich das zusammenfassen soll. Hilft kein JOIN? RE: zusammenfassende Verkaufszahlen über Stücklisten - Arne Drews - 08.02.2017 Hi Till, Danke dass Du Dich damit auseinandersetzt. Ich versuche mal die Grundlage darzustellen. Interessant sind eigentlich nur zwei Tabellen:
In der Tabelle Verkaufspositionen befinden sich logischerweise die verkauften Artikel mit Angabe der Menge. In der Tabelle Stuecklisten befinden sich die sog. Handelsstücklisten. Was sind nun Handelsstücklisten? Nehmen wir an, Du hast zwei Standardartikel ( Artikelnummer, Bezeichnung ):
Bestellst Du also den Artikel 789, erhältst Du die beiden Artikel 123 und 456. Es ist ähnlich wie ein Set, nur dass Sets in den meisten ERP-Systemen als "Standard"-Artikel behandelt werden, d.h. die Beschaffung erfolgt in der Konstellation über einen Lieferanten. Bei Handelsstücklisten bestellst Du die Einzelartikel beim Lieferanten und stellst diese eben als Stückliste zur Verfügung. Warenwirtschaftlich wird in den Belegen nun die 789 verkauft und in die Tabelle Verkaufspositionen eingetragen, lagerführend werden allerdings die 123 und 456 gebucht. Mein Problem ist nun, dass ich wissen muss, wie oft die 123 insgesamt verkauft wurde. Also einmal als Einzelartikel zzgl. der Verkäufe in Stücklisten. Ich kann wohl ermitteln, wie oft die 123 und die 789, in der die 123 enthalten ist verkauft wurde. Das Problem ist nun, dass ein Artikel, wie bspw. die 456 auch mehrfach in einer Stückliste vorkommen kann, also 1x die 123 und 2x die 456. Dann stimmen die Verkaufszahlen des Artikel 456 nicht über die Stückliste, weil die 789 nur einmal verkauft wurde, prinzipiell die 456 aber 2x! Wie oft die 456 in der 789 enthalten ist, steht zwar in der Tabelle Stuecklisten, aber mir fehlt echt die Idee, das zusammenzuführen. Danke RE: zusammenfassende Verkaufszahlen über Stücklisten - DasEm - 08.02.2017 Union? RE: zusammenfassende Verkaufszahlen über Stücklisten - Arne Drews - 08.02.2017 Hallo, Ich weiß nicht, ob mich das weiter bringt. Mit union fasse ich ja zwei oder mehr Abfragen mit denselben Spaltentypen zusammen. Mein Problem ist, dass ich ja die Anzahl 2 der 456 aus der Stückliste mit der verkauften Menge von 789 multiplizieren muss. Danke RE: zusammenfassende Verkaufszahlen über Stücklisten - DasEm - 08.02.2017 Probier mal ne Variante von (ich kann es leider nicht testen): SELECT sum(vp.Menge * ifNull(anzahl, 0)) FROM Verkaufspositionen vp left outer join (select stuueckliste,element, count(*) as anzahl from stuecklisten group by stueckliste, element) as t on t.stueckliste = vp.artikelnummer WHERE vp.Artikelnummer = '0815' RE: zusammenfassende Verkaufszahlen über Stücklisten - Arne Drews - 08.02.2017 Hi, Da bekomme ich 0 raus, obwohl 7049 Stück verkauft sind. Aber ich teste damit mal rum, könnte der richtige Weg sein, danke! RE: zusammenfassende Verkaufszahlen über Stücklisten - DasEm - 08.02.2017 Die Bedingung ist ja auch falsch Im Join will man ja die mit element = '0815' Dann muss auch die Where Bedingung noch geändert werden. Die haben ja eine andere Artikelnummer. Also, ich würde tatsächlich mit einem Union anfangen: ein select für einzeln verkaufte Artikel, das andere für die in einer Stückliste enthaltenen. Könnte am einfachsten sein. RE: zusammenfassende Verkaufszahlen über Stücklisten - Arne Drews - 08.02.2017 Die Bedingung habe ich natürlich schon angepasst. ;-) Ich bin nun auch schon soweit, dass ich Verkaufszahlen bekomme, aber zu hohe noch. Da ist der Hund noch irgendwo begraben, aber soll ja auch nicht kangweilig werden. RE: zusammenfassende Verkaufszahlen über Stücklisten - Till - 08.02.2017 Hallo, da seid Ihr wohl schneller, ... mit JOIN sollte es gehen. Ist Dein DB-Schema vorgegeben oder entwirfst Du es selbst? Zitat:Wie oft die 456 in der 789 enthalten ist, steht zwar in der Tabelle Stuecklisten, aber mir fehlt echt die Idee, das zusammenzuführen.Wo steht das? Wie sieht Dein schema genau aus? Verkaufspositionen (Artikelnummer , Menge) Stuecklisten (Stueckliste, Artikelnummer, Menge, Bezeichnung) Was ist Stueckliste? Geht es nicht mit irgendeinem Baum besser, also statt stückliste z.B. parent? Wenn parent=0 pder parent='' handelt es sich um eine Stückkliste, wäre das eine Idee? Statt Stueckliste trägst Du die Artikelnummer der Stückliste in einen zusätzlichen (parent) Eintrag ein welchen Du natürlich in der Anzeige/Ausgabe ausblenden mußt parent<>0 Die Stuecklisten ergeben sich ja aus vp. So oder so ähnlich würde ich das machen? |