Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#8

AW: SQL Statement brigt doppelte Summen

  Alt 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)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 4. Feb 2016 um 13:17 Uhr)
  Mit Zitat antworten Zitat