Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Zusammenfassende Abfrage (https://www.delphipraxis.net/215104-zusammenfassende-abfrage.html)

TurboMagic 8. Mai 2024 22:17

Datenbank: Firebird • Version: 5.0 • Zugriff über: FireDAC

Zusammenfassende Abfrage
 
Hallo,

gegeben ist eine Tabelle mit verschiedenen Spalten,
u.a. KontoZweckA, BetragA, KontoZweckB, Betrag B.

Mittels Select sollen jetzt die Daten abgerufen werden und zwar gruppiert
nach Konto. In der Ergebnisliste soll es also nur eine Spalte Konto und
eine Betrag geben.

KontoZweckA eines Eintrags kann dieselbe Nummer wie KontoZweckB haben,
es gibt aber auch Fälle wo ein Datensatz in KontoZweckA dieselbe Nummer
drinn hat wie ein anderer Datensatz in KontoZweckB.

a) geht das überhaupt?

b) falls ja, wie?

Olli73 8. Mai 2024 23:15

AW: Zusammenfassende Abfrage
 
Meinst du sowas?

Code:
select konto, sum(betr) as betrag from
(
select kontozweckA as konto, betragA as betr from tabelle
union all
select kontozweckB as konto, betragB as betr from tabelle
)
group by konto
order by 1

TurboMagic 9. Mai 2024 06:57

AW: Zusammenfassende Abfrage
 
Hallo,

danke für die Idee. Sowas in der Art könnte evtl. funktionieren.
Ich bin halt noch nicht so fit mit Subselects.

Muss ich also mal ausprobieren.

TurboMagic 9. Mai 2024 08:26

AW: Zusammenfassende Abfrage
 
Zitat:

Zitat von Olli73 (Beitrag 1536514)
Meinst du sowas?

Code:
select konto, sum(betr) as betrag from
(
select kontozweckA as konto, betragA as betr from tabelle
union all
select kontozweckB as konto, betragB as betr from tabelle
)
group by konto
order by 1

Das klappt leider noch nicht :-(
Zitat der DB:
Zitat:

Invalid expression in the select list (not contained in either an aggregate function or the GROUP BY clause).
Irgend eine Idee? Eine Erweiterung des group by um betrag funktioniert nicht, wäre ja aber auch quatsch.
Die beiden Subselects für sich alleine liefern Daten.

Uwe Raabe 9. Mai 2024 08:45

AW: Zusammenfassende Abfrage
 
Das war offenbar noch nicht vollständig. Gibt man dem Subselect einen Namen sollte es funktionieren:
SQL-Code:
select T.konto, sum(T.betr) as betrag from
(
select kontozweckA as konto, betragA as betr from tabelle
union all
select kontozweckB as konto, betragB as betr from tabelle
) T
group by T.konto
order by T.konto

TurboMagic 9. Mai 2024 08:55

AW: Zusammenfassende Abfrage
 
Danke!
Das Grundprinzip funktioniert damit schon mal!


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:28 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