![]() |
Datenbank: Interbase • Version: egal • Zugriff über: egal
Summe aus einer Spalte mit Bedingungen
Guten Tag,
ich habe in einer Tabelle eine Spalte "lastatus" in der unterschiedliche Werte gespeichert werden. a) A=Anwesend b) E=Entschuldigt c) U=Unentschuldigt Nun möchte ich verschiedene Summen ermitteln. 1) GesamtTage = Count(*) 2) Anwesende Tage = A 3) Entschuldigte Tage = E 4) Unentschuldigte Tage = U Meine Frage: Wie muss der SQL-String aufgebaut werden, wenn es überhaupt möglich ist?
Code:
Die Ausgabe wird so aussehen:
select name2|| ' ' ||name1 as Teilnehmer,
count(*) as GesamtTage Sum(*) as Anwesend "wenn lastatus = A" Sum(*) as Entschuldigt "wenn lastatus = E" Sum(*) as Unentschuldigt "wenn lastatus = U" where extract(year from datum) = :pJahr Teilnehmer|Anzahl Tage|Anwesend|Entschuldigt|Unentschuldigt ... Vielen Dank für Eure Hilfen im Voraus |
AW: Summe aus einer Spalte mit Bedingungen
Sowas in der Art?
SQL-Code:
(nur mal eben hingedaddelt)
select
Teilnehmer, Anwesend + Entschuldigt + Unentschuldigt as GesamtTage, Anwesend, Entschuldigt, Unentschuldigt from ( select Teilnehmer, sum(Anwesend) as Anwesend, sum(Entschuldigt) as Entschuldigt, sum(Unentschuldigt) as Unentschuldigt from ( select name2|| ' ' ||name1 as Teilnehmer, case when lastatus = 'A' then 1 else 0 end as Anwesend, case when lastatus = 'E' then 1 else 0 end as Entschuldigt, case when lastatus = 'U' then 1 else 0 end as Unentschuldigt from tabelle where extract(year from datum) = :pJahr ) group by Teilnehmer ) order by Teilnehmer |
AW: Summe aus einer Spalte mit Bedingungen
Oder mit iif()
SQL-Code:
select name2|| ' ' ||name1 as Teilnehmer,
count(*) as GesamtTage Sum(iif( lastatus = 'A', 1, 0)) as Anwesend, ... |
AW: Summe aus einer Spalte mit Bedingungen
Vielen Dank für Eure Antwort.
Beide Varianten führen zum Ziel und ich habe einiges Weitere über den Aufbau von SQL-Befehlen gelernt. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:03 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz