Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Datensätze zusammenfassen (https://www.delphipraxis.net/198988-datensaetze-zusammenfassen.html)

Walter Landwehr 17. Dez 2018 08:13

Datenbank: Firebird • Version: 2,5.3 • Zugriff über: IBO

Datensätze zusammenfassen
 
Hallo, ich habe folgenden SQL Befehl:
Delphi-Quellcode:
select Sum(R.GESAMTBETRAG) as Summe, R.patientnr, P.suchwort, P.GebuehSatz, P.RECHNUNGENOHNEDRUCK, R.Termin, P.SAMMELADRESSE,
A.patabschluss, A.AbrechnungNr, A.DATUM, A.Kopftext, A.FussText, A.Werbetext, A.Behandler, R.TiereNr, A.BELEGART, A.MWSTJN,
(Select sum(GesamtBetrag) from tbl_Patblatt where AbrechnungNr = A.AbrechnungNr and Typ = 'Z') as Bezahlt
from tbl_patblatt R
Inner join tbl_patient P on R.patientnr = P.patientnr
Inner join tbl_Abrechnung A on R.ABRECHNUNGNR = A.ABRECHNUNGNR And A.PATIENTNR = P.PATIENTNR
where R.typ <> 'Z' and P.SAMMELADRESSE = 'N'
and R.TiereNr is Null and P.gehoertzu is null
group by R.patientnr, P.suchwort, P.GebuehSatz, P.RECHNUNGENOHNEDRUCK, R.Termin, P.SAMMELADRESSE, A.patabschluss, A.AbrechnungNr, A.Datum,
A.Kopftext, A.FussText, A.Werbetext, A.Behandler, R.TiereNr, A.BELEGART, A.MWSTJN
Nun kann es vorkommen das R.Termin mal den Wert 'J' hat mal den WERT 'N' hat.
Ich möchte aber wenn alle anderen Felder gleich sind dies in einem Datensatz anzeigen. Geht das?

mkinzler 17. Dez 2018 08:27

AW: Datensätze zusammenfassen
 
Erweitere die Feldliste um ein weiteres Feld TerminGruppe und gruppiere statt nach r.termin danach
SQL-Code:
  iif((r.termin = 'J') or (r.termin = 'N'), 'JN', r.termin) as TerminGruppe ...

Uwe Raabe 17. Dez 2018 08:44

AW: Datensätze zusammenfassen
 
Zitat:

Zitat von mkinzler (Beitrag 1421020)
Erweitere die Feldliste um ein weiteres Feld TerminGruppe und gruppiere statt nach r.termin danach

Dann muss aber das Feld R.Termin doch auch noch verschwinden oder mit einem Aggregat dekoriert werden, oder? Schließlich kann in dem gruppierten Datensatz für R.Termin ja nicht "J" und "N" stehen.

mkinzler 17. Dez 2018 08:56

AW: Datensätze zusammenfassen
 
Aus der Gruppierung ja. Deshalb schrieb ich ja statt

Jumpy 17. Dez 2018 08:57

AW: Datensätze zusammenfassen
 
Alternativ kann man es doch auch einfach weglassen, wenn die Information eh für diese Abfrage nicht relevant ist.

Walter Landwehr 17. Dez 2018 09:03

AW: Datensätze zusammenfassen
 
Danke so funktioniert es:
Delphi-Quellcode:
select Sum(R.GESAMTBETRAG) as Summe, R.patientnr, P.suchwort, P.GebuehSatz, P.RECHNUNGENOHNEDRUCK, P.SAMMELADRESSE,
A.patabschluss, A.AbrechnungNr, A.DATUM, A.Kopftext, A.FussText, A.Werbetext, A.Behandler, R.TiereNr, A.BELEGART, A.MWSTJN,
iif((r.termin ='J') or (r.Termin = 'N'),'JN',r.Termin) as TerminGruppe,
(Select sum(GesamtBetrag) from tbl_Patblatt where AbrechnungNr = A.AbrechnungNr and Typ = 'Z') as Bezahlt
from tbl_patblatt R
Inner join tbl_patient P on R.patientnr = P.patientnr
Inner join tbl_Abrechnung A on R.ABRECHNUNGNR = A.ABRECHNUNGNR And A.PATIENTNR = P.PATIENTNR
where R.typ <> 'Z' and P.SAMMELADRESSE = 'N'
and R.TiereNr is Null and P.gehoertzu is null
group by R.patientnr, P.suchwort, P.GebuehSatz, P.RECHNUNGENOHNEDRUCK, TerminGruppe, P.SAMMELADRESSE, A.patabschluss, A.AbrechnungNr, A.Datum,
A.Kopftext, A.FussText, A.Werbetext, A.Behandler, R.TiereNr, A.BELEGART, A.MWSTJN

Uwe Raabe 17. Dez 2018 09:35

AW: Datensätze zusammenfassen
 
Zitat:

Zitat von mkinzler (Beitrag 1421026)
Aus der Gruppierung ja. Deshalb schrieb ich ja statt

Das ist schon klar. Es muss dann aber auch aus der Feldliste im SELECT raus, da dort nur gruppierte Felder oder Aggregate stehen dürfen. Andernfalls, was sollte denn unter R.Termin ausgegeben werden, wenn die "J"- und "N"-Werte in dieselbe Gruppe geworfen werden?

p80286 17. Dez 2018 09:45

AW: Datensätze zusammenfassen
 
Wenn es "genau gleiche Datensätze" gibt, stimmt denn dann die Summe?
Hört sich sehr nach Doppelzählung an.

Gruß
K-H


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:08 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz