Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   SQL Frage (https://www.delphipraxis.net/212522-sql-frage.html)

Tommi1966 22. Feb 2023 08:20

Datenbank: ADS • Version: 10 • Zugriff über: local

SQL Frage
 
Hallo zusammen,
ich komme hier nicht weiter und stelle diese Frage an euch.

Tabelle
id, lkz, aktiv, art, mnr, monat, jahr, kilo
1 A JA direkt 01 Januar 2019 250
2 A JA verladen 01 Januar 2019 550
3 A JA direkt 02 Februar 2019 250
4 A JA verladen 02 Februar 2019 550

soweit bin ich schon gekommen mit der SQL-Abfrage

select
sum(CASE when (art='direkt') then [kilo] else Null end) as B,
sum(CASE when (art='verladen') then [kilo] else Null end) as C,
mnr,jahr,art
from Tabelle where jahr='2019' group by mnr,jahr,art order by mnr

so sieht das Ergebnis der Abfrage nun aus

B, C, mnr, jahr, art
250 01 2019 direkt
550 01 2019 verladen
250 01 2019 direkt
550 01 2019 verladen

was ich gerne hätte

B, C, D, mnr, jahr, art
250 01 2019 direkt
550 01 2019 verladen
800 01 2019 Summe
250 02 2019 direkt
550 02 2019 verladen
800 02 2019 Summe

vorab vielen Dank für die Unterstützung

joachimd 22. Feb 2023 10:16

AW: SQL Frage
 
mal abgesehen davon, dass Dein Tabellendesign ziemlich kaputt zu sein scheint.... Du musst das extra selektieren und mit UNION ALL dazu binden:
Code:
select
sum(CASE when (art='direkt') then [kilo] else Null end) as B,
sum(CASE when (art='verladen') then [kilo] else Null end) as C,
0 as D,
mnr,jahr,art
from test where jahr=2019 group by mnr,jahr,art

union all

select 0, 0, sum(kilo), mnr,jahr,'SUMME' from test where jahr=2019 group by mnr,jahr

order by mnr
P.S.: Tabellenname geändert und aus Jahr einen integer gemacht.

Tommi1966 22. Feb 2023 11:27

AW: SQL Frage
 
Vielen Dank das klappt wunderbar :-D


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