Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Dopppelte Einträge (https://www.delphipraxis.net/175214-dopppelte-eintraege.html)

Metallicwar 6. Jun 2013 15:07

Datenbank: ADS • Version: 10 • Zugriff über: Delphi

Dopppelte Einträge
 
Moin,
mit dem SQL hier lass ich mir alle doppelten Kartennummer auflisten.
Code:
SELECT Kartennummer, count(*) as Anzahl
FROM Personalstatus
GROUP BY Kartennummer
Having (count(*) > 1)
Ergebnis:
Item|Kartennummer|Anzahl
------------------------
1 | |70
2 |1928383 |2


Ich will mir die doppelten Einträge aber untereinander auflisten. Hierzu gibt es in der Tabelle noch eine Mitarbeiteridentifikation ID_Personal, die soll noch mit in den SQL.

Soll dann so aussehen
ID_Personal|Kartennummer
1|1928383
2|1928383


Kann doch nicht so schwer sein, mach damit schon ewig rum :wall:

DeddyH 6. Jun 2013 15:12

AW: Dopppelte Einträge
 
Du willst die Kartennummern ermitteln, die mehreren Mitarbeitern zugeordnet sind, oder habe ich das falsch verstanden?

Metallicwar 6. Jun 2013 15:19

AW: Dopppelte Einträge
 
Zitat:

Zitat von DeddyH (Beitrag 1217664)
Du willst die Kartennummern ermitteln, die mehreren Mitarbeitern zugeordnet sind, oder habe ich das falsch verstanden?

Ganz genau

DeddyH 6. Jun 2013 15:21

AW: Dopppelte Einträge
 
2 Möglichkeiten, die mir spontan einfallen (beide ungetestet):
1.
SQL-Code:
SELECT
  P1.ID_Personal, P1.Kartennummer
FROM
  Personalstatus P1
JOIN
  Personalstatus P2
  ON
    P2.Kartennummer = P1.Kartennummer
  AND
    P2.ID_Personal <> P1.ID_Personal
ORDER BY
  P1.ID_Personal, P1.Kartennummer
2.
SQL-Code:
SELECT
  P1.ID_Personal, P1.Kartennummer
FROM
  Personalstatus P1
WHERE EXISTS(
  SELECT
    *
  FROM
    Personalstatus
  WHERE
    Kartennummer = P1.Kartennummer
  AND
    ID_Personal <> P1.ID_Personal  
  )
ORDER BY
  P1.ID_Personal, P1.Kartennummer

baumina 6. Jun 2013 15:23

AW: Dopppelte Einträge
 
Vorschlag :

Code:
SELECT ID_Personal, Kartennummer
  FROM Personalstatus
where Kartennummer in (
    SELECT Kartennummer
      FROM Personalstatus
     GROUP BY Kartennummer
     Having (count(*) > 1)
   )
ungetestet.

Metallicwar 6. Jun 2013 15:32

AW: Dopppelte Einträge
 
Hallo DeddyH, Hi baumina
danke für SQL's beide liefern das gewünschte Ergebnis.

Vielen Dank !!


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:22 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz