Einzelnen Beitrag anzeigen

Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.095 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: alternative wenn select distinct gleiche record nicht filtert.

  Alt 18. Jan 2022, 17:04
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.
Miniaturansicht angehängter Grafiken
2022-01-18_165923.png  
  Mit Zitat antworten Zitat