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

Ausgedruckt am: 28.03.2024 um 13:03 Uhr

Mitglied: Netzheimer
Netzheimer 23.04.2009 um 09:52:08 Uhr
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.
Mitglied: JackHammer
JackHammer 23.04.2009 um 10:13:59 Uhr
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 23.04.2009 um 10:23:29 Uhr
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