Einzelnen Beitrag anzeigen

BlueStarHH

Registriert seit: 28. Mär 2005
Ort: Hamburg
849 Beiträge
 
Delphi 11 Alexandria
 
#1

Datensätze gruppieren: Wie Feldwert nach Bedingung setzen?

  Alt 15. Jun 2022, 11:49
Datenbank: Firebird • Version: 3.x • Zugriff über: IBDAC
Hallo,

ich habe diese Tabelle:

Code:
Adressen
-----------------
ID      Integer
Aktiv   Bool
Firma   Varchar
Strasse Varchar
Ort     Varchar
...
Ich möchte nun alle mehrfach vorhandenen gleichen Adressen ermitteln. Dabei sollen gleiche Adressen zusammen gruppiert werden und mitsamt den mehrfach vorhandenen IDs ausgegeben werden. Das mache ich so:

Code:
select coalesce(Firma, '') as Firma, coalesce(Strasse, '') as Strasse, coalesce(Ort, ''), list(ID) as IDs, from Adressen
group by Firma, Strasse, Ort
having count(*) > 1
Das funktioniert. Nun möchte ich dazu aber zusätlzich das Feld "Aktiv" dazu ausgeben und zwar so:

Wenn alle Adressen einer Gruppe aktiv=true haben soll in der Spalte Aktiv true stehen.
Wenn alle Adressen einer Gruppe aktiv=false haben soll in der Spalte Aktiv false stehen.
Wenn bei den Adressen einer Gruppe aktiv unterschiedlich ist, soll in der Spalte Aktiv true stehen.

Wie mache ich das?
  Mit Zitat antworten Zitat