Ich konnte die Ursache für das Fehlverhalten schon lokalisieren können. Es liegt daran dass ich "list" verwende.
Warum die Datensätze mehrfach ausgegeben werden, liegt daran dass die Person mehrere Funktionärsämter hat und in allen Ämtern die gleiche Mailadresse angegeben hat.
Das
SQL habe ich runterbrechen können auf das hier:
Code:
select distinct *
from(
select distinct p.personid, p.namen, p.vorname, f.email as Email,
(select distinct list(k.kontakt)
from kontakte k
where (k.personid = p.personid)
and (k.kontakttyp in (4,8))
and (k.geloescht = 0)
) as KontakteEmail
from personen p
join funktionaere f on (f.personid = p.personid) and (f.funktionaerid > 10000)
where p.personid = 386198
)
Ohne dem Subselect mit List funktioniert es schon. Damit mache ich folgendes: Eine Person kann unter Kontakte mehrere Emailadressen haben. Alle Emailadressen sollen als Kommaseparierte Listen ausgegeben werden. Unter diesen Umständen funktioniert distinct nicht.
Noch eine Besonderheit:
Dieses
SQL in IBExpert ausgeführt, zeigt die List mit allen Feldern incl. das List Feld "KontakteEmail"
Wenn ich das result in
csv exportieren, wird dieses Feld NICHT exportiert. Ist doch auch komisch.