Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi MySQL doppelte Datensätze anzeigen... (https://www.delphipraxis.net/103705-mysql-doppelte-datensaetze-anzeigen.html)

omata 24. Dez 2007 00:39

Re: MySQL doppelte Datensätze anzeigen...
 
Zitat:

Zitat von Gonso
...kann man deine abfrage so verändern, dass ich nur doppelte datensätze bekomme aber nur einzeln. ... Ich möchte nur 10 sehen, die zwar doppelt sind aber nicht doppelt angezeigt werden sollen.

als doppelt gilt: gleiche nachname und vorname.

Ich sollte aber alle felder in einem datensatz sehen

Hallo Gonso,

kleine Gegenfrage: Wenn es doppelte Datensätze (nachname und vorname) gibt und sich diese Zeilen dann in der Adresse unterschieden, welche der beiden Adressen möchtest du sehen bzw. welche Zeile soll nicht ausgegeben werden?

Denk da nochmal drüber nach, bin auf eine Antwort gespannt.

Gruss
Thorsten

Gonso 24. Dez 2007 02:07

Re: MySQL doppelte Datensätze anzeigen...
 
hallo omata!

deine frage ist berechtigt und zwang mich zum nachdenken und ich kam zum folgendem ergebnis:

in einer tabelle möchte man nachträglich unique index setzen (nachname, vorname).
beispiel: ich habe zwei datensätze wo die felder nachname und vorname gleich sind (als gleich verstehe ich entsprechend gleiche inhalte => auch leer oder is null). somit gelten solche zwei datensätze für mich als doppelt vorhanden auch wenn sich alle andere felder voneinander unterscheiden.

unter diesen umständen definiere ich einen datensatz als doppelt: das ist ein datensatz, der (später) gegen die unique- regeln (nachname, vorname) verstoßen würde. folgend ist es für mich nicht nötig einen von beiden bevor zuziehen

ANTWORT AUF DEINE FRAGE: es ist egal welchen datensatz ich zu sehen bekomme, hauptsache nur einen von beiden und nur solche die doppelt vorhanden sind.

es wäre echt cool, wenn du so was hingekriegt hättest!

du kannst auch zeigen wie kann man solche abfragen steuern, wenn man z.b. zusätzlich einen von den beiden datensätze sehen möchte der früher erstellt wurde (feld: erfdatum : tdatetime).

danke dass du dich gemeldet hast

omata 24. Dez 2007 02:33

Re: MySQL doppelte Datensätze anzeigen...
 
Hallo Gonso,

ok, mit deinen zusätzlichen Infos kann man natürlich arbeiten...
SQL-Code:
SELECT *
FROM tblkunden x
WHERE COALESCE(nachname, '') <> ''
  AND COALESCE(vorname, '') <> ''
  AND EXISTS (SELECT nachname, vorname
              FROM tblkunden
              WHERE nachname = x.nachname
                AND vorname = x.vorname
              GROUP BY nachname, vorname
              HAVING COUNT(*) > 1)
  AND erfdatum = (SELECT MAX(erfdatum)
                  FROM tblkunden
                  WHERE nachname = x.nachname
                    AND vorname = x.vorname)
ORDER BY nachname, vorname
Hier wird nur der letzte Datensatz angezeigt, wenn es der Erste sein soll, nimm MIN.

Gruss
Thorsten

Gonso 24. Dez 2007 13:47

Re: MySQL doppelte Datensätze anzeigen...
 
Hallo OMATA!

sehr elegant und sauber, eben Qualitäts-Antwort.

ein weihnachtsgeschenk das ich so nicht verdient habe.

wie schon geschrieben: ich bewundere DEIN Expertenwissen!

danke Thorsten


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:18 Uhr.
Seite 3 von 3     123   

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 by Thomas Breitkreuz