ERLEDIGT
NEIN
NEIN
ANTWORTEN
3
3
ZUGRIFFE
285
285
EMPFEHLEN
-
Benutze: Delphi 2006 prof. + InterBase 7.5
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:
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
-
Hallo Andreas,
du hast Recht, das du die 3 Datensätze mit gleichem SNV_ID=2 erst gruppieren musst.
Versuchs mal so:
Code sql:1 2 3 4 5 6 7 8 9 10 11
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
Gruss Bernd
Zitat von mAu
-
Hi, danke für die schnelle Antwort, dachte schon an Unterabfragen

Habs ausprobiert, 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.
Bin weiter fleißig am suchen und probieren.
-
Hallo Andreas,
ich hab hier MSSQL, kann sein das es bei Interbase nicht mit dem "AS" funktioniert.
In meinem SQL war 2x ein "AS". Habs mal rausgenommen.
Probier vorher mal nur den SubSelect:
ob der so funktioniert.Code sql:1 2 3 4
SELECT SNV_SNACKHAUPT_ID, SUM(SNV_MENGE) AS DosenTotal FROM SNACKVERKAUF GROUP BY SNV_SNACKHAUPT_ID
Und hier nochmal der korrigierte SQL, ggf. musst du den Subselect ersetzten, wenn der SQL oben noch Probelme macht.
Code sql:1 2 3 4 5 6 7 8 9 10 11
SELECT SUM(H.SNH_GELD) AS GeldTotal, SUM(H.SNH_AUSGEZAHLT) AS ProvisionTotal, SUM(V.DosenTotal) AS DosenTotal FROM SNACK_HAUPT H LEFT OUTER JOIN (SELECT SNV_SNACKHAUPT_ID, SUM(SNV_MENGE) AS DosenTotal FROM SNACKVERKAUF GROUP BY SNV_SNACKHAUPT_ID ) V ON H.SNH_ID = V.SNV_SNACKHAUPT_ID
Gruss Bernd
Zitat von mAu
Ähnliche Themen
-
Stored Proceduren und Interbase
Von marciboy im Forum PHPAntworten: 0Letzter Beitrag: 14.01.10, 19:44 -
insert auf Interbase
Von dontschew im Forum PHPAntworten: 2Letzter Beitrag: 16.08.07, 10:30 -
Konvertierung Interbase zu SQL
Von Nil18 im Forum Relationale DatenbanksystemeAntworten: 0Letzter Beitrag: 02.02.07, 11:14 -
CASE-Alternative in Interbase
Von Supa im Forum Relationale DatenbanksystemeAntworten: 2Letzter Beitrag: 14.05.06, 17:55 -
Apacheserver+PHP+Interbase
Von DokFerien im Forum PHPAntworten: 4Letzter Beitrag: 14.04.04, 13:23





Zitieren
Login




