Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
Delphi 12 Athens
|
AW: SQL Statement brigt doppelte Summen
4. Feb 2016, 13:06
Nur einmal gejoint und dann beim SUM entscheiden was gezählt wird?
SQL-Code:
select p.patientnr, p.suchwort, p.GebuehSatz,
sum(iif(b.typ <> 'Z', b.gesamtbetrag, null)) as summe, -- Summe über alles? sum(b.gesamtbetrag) as summe,
sum(iif(b.typ = 'Z', b.gesamtbetrag, null)) as bezahlt
from tbl_patient p
join tbl_patient p2 on p2.gehoertzu = p.patientnr
join tbl_patblatt b on b.gehoertzu = p.patientnr
where p.sammeladresse = 'J'
and b.tierenr is null
group by p.patientnr, p.suchwort, p.GebuehSatz
Wenn es jetzt noch doppelt ist, dann ist vermutlich einer der beiden JOINs dafür verantwortlich.
Irgendwie so?
SQL-Code:
select p.patientnr, p.suchwort, p.GebuehSatz,
sum(iif(b.typ <> 'Z', b.gesamtbetrag, null)) as summe,
sum(iif(b.typ = 'Z', b.gesamtbetrag, null)) as bezahlt
from tbl_patient p
join tbl_patblatt b on b.gehoertzu = p.patientnr
where (p.sammeladresse = 'J'
and b.tierenr is null)
or p.patientnr in (select p2.patientnr from tbl_patient where p2.gehoertzu = p.patientnr)
group by p.patientnr, p.suchwort, p.GebuehSatz
Müsste bei join tbl_patient p2 on p2.gehoertzu = p.patientnr
nicht b2.gesamtbetrag genommen werden, statt b.gesamtbetrag? (gejoint gegen p2)
$2B or not $2B
Geändert von himitsu ( 4. Feb 2016 um 13:17 Uhr)
|
|
Zitat
|