Hi, stehe gerade auf dem Schlauch
Tabelle "SNACK_HAUPT"
mit Spalten: SNH_ID, SNH_GELD, SNH_AUSGEZAHLT
Inhalt:
SNH_ID=1 SNH_GELD=37 SNH_AUSGEZAHLT=3,7
SNH_ID=2 SNH_GELD=14 SNH_AUSGEZAHLT=1,4
Tabelle "SNACKVERKAUF "
mit Spalten: SNV_ID, SNACKHAUPT_ID, SNV_MENGE
Inhalt:
SNV_ID=1 SNACKHAUPT_ID=1 SNV_MENGE=37
SNV_ID=2 SNACKHAUPT_ID=2 SNV_MENGE=5
SNV_ID=3 SNACKHAUPT_ID=2 SNV_MENGE=8
SNV_ID=4 SNACKHAUPT_ID=2 SNV_MENGE=1
Meine Versuchsanweisung:
SQL-Code:
SELECT
SUM(H.SNH_GELD) as GeldTotal, SUM(H.SNH_AUSGEZAHLT) as ProvisionTotal, SUM(V.SNV_MENGE) as DosenTotal
FROM SNACK_HAUPT H
LEFT JOIN SNACKVERKAUF V ON (H.SNH_ID = V.SNV_SNACKHAUPT_ID)
Sollte sowas als Ergebn. kommen:
GeldTotal =51
ProvisionTotal =5,1
DosenTotal =51
ist aber:
GeldTotal =79
ProvisionTotal =7,9
DosenTotal =51
Mir ist klar wie InterBase auf diese werte kommt, SNACKVERKAUF beinhaltet 3 Datensätze mit gleichem SNV_ID=2. Hab da LEFT Join, weil es durch aus sein kann, das keine Dosen aufgefüllt wurden.
Wie müsste ich das ganze jetzt gruppieren damit das ganze stimmt??
Viele Grüsse
Andreas
Ps. Sowas geht leider nicht.
SQL-Code:
SELECT SUM(H.SNH_GELD) AS GeldTotal,
SUM(H.SNH_AUSGEZAHLT) AS ProvisionTotal,
SUM(V.DosenTotal) AS DosenTotal
FROM SNACK_HAUPT AS H
LEFT OUTER JOIN
(SELECT SNV_SNACKHAUPT_ID,
SUM(SNV_MENGE) AS DosenTotal
FROM SNACKVERKAUF
GROUP BY SNV_SNACKHAUPT_ID
) AS V
ON H.SNH_ID = V.SNV_SNACKHAUPT_ID
Interbase gibt eine Fehlermeldung aus, zuerst bei: "FROM SNACK_HAUPT AS H" muss "AS" weg und danach kommt die nächste mit Token unknow Select, in der Zeile hinter "LEFT OUTER JOIN". Glaub diese Unterabfragen gehen hier nur in "where" Anweisung.