jackhammer
Goto Top

SQL Abfrage mit doppelte einträgen ausgeben

Hab bereits ein paar Lösungen im Netz ausprobiert wobei leider keine funktioniert

Habe eine Tabelle mit namen pc
in der Tabelle sind PCNamen und Kürzel von Benutzern aufgelistet. Manchen Benutzern sind mehrere PC zugeordnet und das möchte ich gerne Prüfen.

SELECT pcname, kuerzel FROM pc GROUP BY pcname, kuerzel HAVING COUNT(pcname) > 1

diesen Code habe ich in einem anderen Forum gefunden ergibt aber leider keine Ausgabe. Hab aber schon manuel geprüft ob kürzel doppelt vergeben sind.
Kann mir da jemand helfen?
MfG

Content-Key: 114486

Url: https://administrator.de/contentid/114486

Printed on: May 7, 2024 at 10:05 o'clock

Member: Netzheimer
Netzheimer Apr 23, 2009 at 07:52:08 (UTC)
Goto Top
Guten Morgen.

Dreh doch mal die GROUP BY- Klausel um ..BY kuerzel, pcname.

Es wird ja sonst zuerst nach pcnamen gruppiert, d.h. alle PC mit gleichem Namen werden zusammengefasst. Es sollen aber vermutlich alle gleichen Namen zusammengefasst werden.
Member: JackHammer
JackHammer Apr 23, 2009 at 08:13:59 (UTC)
Goto Top
ich mache mal ein beispiel wie das aussehen sollte

pcname kuerzel
PC156 AK
PC156 AK
PC70 CE
PC70 CE
PC478 CG
Pc478 CG

wo ein kürzel mehreren PCs zugeordnet ist würde ich gerne so haben
die hab ich mir jetzt so rauskopiert

vll dazu noch eine idee?
trotzdem danke für die schnelle antwort face-wink
Mitglied: 76109
76109 Apr 23, 2009 at 08:23:29 (UTC)
Goto Top
Hallo Jackhammer,

der Teilausschnitt zum ermitteln doppelter Datensätze für das Löschen, sollte Dir weiterhelfen.

Ermittlung aller Id's dieser mehrfach vorhandenen Datensätze:

Möchten Sie diese Datensätze ansehen, so schließen Sie mit einer Unterabfrage alle Datensätze aus, die nur einmal vorkommen. Dies erreichen Sie, indem Sie in der obigen HAVING-COUNT - Klausel auf = 1 prüfen und die hierdurch erhaltenen ID's mit NOT IN als Ausschlußkriterium verwenden.

SELECT A.[Personen-Id] As [Datensatz-ist-Kandidat-zum-Loeschen],
	A.Nachname, A.Vorname, A.Geburtstag

FROM tbl_Personen As A

Where A.[Personen-Id] NOT IN

	(SELECT MIN(X.[Personen-Id]) As [Datensatz-ist-einmalig]
		FROM tbl_Personen As X
		GROUP BY X.Nachname, X.Vorname, X.Geburtstag
		HAVING COUNT(*) = 1)

Weitere Beispiele findest Du hier:

http://www.sql-und-xml.de/xml/sql-praxis/doppelte-daten-zeilen-identifi ...

Gruß Dieter