Aloah!
Ich breche mir grad einen mit einem
SQL-Statement ab. Ich habe folgende 2 Tabellen:
rkohis (Rezeptkopf-Historie)
- V_Dat (Vorgabedatum)
- Rez_Nr (Rezept-Nummer)
- Charge (frei vergebene Chargennummer)
- Rez_Name (String, Klartextname des Rezeptes)
- Komment (beliebiger Kommentar)
rpohis (Rezeptpositions-Historie)
- V_Dat (Vorgabedatum)
- Komp_Nr (Komponentennummer; ein Rohstoff des Rezeptes)
- Charge (frei vergebene Chargennummer)
- Rez_Nr (Rezept-Nummer)
- Anteil_Ist (verwogene Menge)
Ich möchte nun eine Abfrage haben, die ausgibt wie viel (Summe von Anteil_Ist) von jeden Rezept jemals produziert wurde, und in viel vielen Chargen das geschah. Folgendes Statement hab ich bisher:
SQL-Code:
SELECT
k.REZ_NAME AS Rezeptname,
k.KOMMENT AS Kommentar,
COUNT(p.CHARGE)*1.0 AS Anzahl_Chargen,
ROUND(SUM(p.ANTEIL_IST))*1.0 AS Menge
FROM
rpohis p JOIN rkohis k ON p.REZ_NR = k.REZ_NR AND p.V_Dat = k.V_Dat
GROUP BY
k.REZ_NAME
ORDER BY
k.REZ_NAME
Das Problem ist, dass wenn ein Rezept z.B. 4 einzelne Komponenten hat ich am Ende den vierfachen Wert für "Anzahl_Chargen" herausbekomme.
Gruppiere ich zusätzlich nach "Komp_Nr", stimmen die jeweiligen Mengen, aber für jede Komponente ist natürlich die volle Anzahl Chargen eingetragen, die ohne diese Gruppierung zusammenaddiert werden - das darf nicht.
Kopf raucht. Wie kann ich das erreichen?
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)