Thema: Delphi [SQL] JOIN joint zu oft

Einzelnen Beitrag anzeigen

Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#1

[SQL] JOIN joint zu oft

  Alt 14. Jan 2010, 12:16
Datenbank: MySQL • Version: 4.1 • Zugriff über: Zeos
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)
  Mit Zitat antworten Zitat