Hallo Forum,
ich hoffe dass ihr mir eventuell etwas auf die Sprünge helfen könnt. Kurz zu meinem Problem, ich muss eine Lagerumsatzgeschwindigkeit berechnen. Soweit nicht so wild. Meine Tabelle enthält allerdings pro Geschäftsjahr ca 70k Datensätze, weswegen ich nicht jeden einzeln bearbeiten möchte. Das würde Stunden dauern. Die Formel ist recht einfach und ich hab gehofft das ganze in einem
SQL unterbringen zu können.
Meine Tabelle sieht im groben so aus
Code:
Jahr: Integer
Monat: Integer
Kunde: Integer
Artikel: Integer
Col: String
AbverkauftMenge: CurDouble
IstBestand: CurDouble
LUG: CurDouble
Die LUG soll so berechnet werden:
LUG = (Summe(AbverkauftMenge) der letzten
12 Monate) / (Summe(IstBestand) der letzten
13 Monate) * 13
Jetzt habe ich gehofft dass ich mit einem Statement der folgenden Art das ganze einfach dem
DB-Server überlassen könnte:
Code:
UPDATE
Statistik
SET
LUG =
(
SELECT
SUM(AbverkauftMenge) AS Menge
FROM
Statistik
WHERE
Kunde = Statistik.Kunde
AND Artikel = Statistik.Artikel
AND Col = Statistik.Col
AND ((Jahr >= Statistik.Jahr-1 AND Monat >= Statistik.Monat+1)
OR (Jahr <= Statistik.Jahr AND Monat <= Statistik.Monat))
)
/
(
SELECT
SUM(IstBestand) AS Menge
FROM
Statistik
WHERE
Kunde = Statistik.Kunde
AND Artikel = Statistik.Artikel
AND Col = Statistik.Col
AND ((Jahr >= Statistik.Jahr-1 AND Monat >= Statistik.Monat)
OR (Jahr <= Statistik.Jahr AND Monat <= Statistik.Monat))
)
* 13
Jedoch kommen bei diesem Statement für alle Datensätze der gleiche Wert in jeder Zelle raus. Ich denke das die Kunde/Artikel/Col Where-Klausel nur ein einziger Wert genommen wird...
Vielleicht ist hier ja n
DB Profi der mir da n bisschen auf die Sprünge helfen kann, Danke schonmal im voraus!
Lg, Mika
// Edit: Gelöst: Danke für eure Hilfe !