forTeesSake Geschrieben 13. Februar 2006 Geschrieben 13. Februar 2006 hi und hallo, bin leider nicht der grosse sql crack und habe deswegen folgende frage: ich habe eine tabelle (vereinfacht dargestellt) tabelle 'kunden' - mitgliedsNr - kontonummer nun möchte ich aus der tabelle über ein sql statement alle einträge herausfinden bei denen mitgliedNr und kontonummer gleich sind. also im endeffekt doppelte einträge herausfiltern, und mir all diese datensätze anzeigen lassen. ich hab schon bisschen mit distinct gearbeitet, aber so komme ich glaube ich nicht hin. weiss jemand rat? vielen dank
Amstelchen Geschrieben 13. Februar 2006 Geschrieben 13. Februar 2006 select mitgliedsnr from kunden where mitgliedsnr = kontonummer liefert alle mitgliedsnummern, welche mit der kontonummer ident sind (voraussetzung bei mir: mitgliedsnummer ist der PK). wenn du keinen PK verwendest und doppelte rows hast: select distinct mitgliedsnr, kontonummer from kunden where mitgliedsnr = kontonummer liefert dir doppelte datensätze als eindeutige ergebniszeilen. s'Amstel
Pinhead Geschrieben 13. Februar 2006 Geschrieben 13. Februar 2006 nun möchte ich aus der tabelle über ein sql statement alle einträge herausfinden bei denen mitgliedNr und kontonummer gleich sind. SELECT * FROM kunden WHERE mitgliedsNr = kontonummer ; Das gibt dir die Datensätze bei dennen mitgliedsNr und Kontonummer gleich sind. also im endeffekt doppelte einträge herausfiltern, und mir all diese datensätze anzeigen lassen. Allerdings vermute ich das du eher sowas wie das hier suchst SELECT DISTINCTROW First(kunden.mitgliedsNr), First(kunden.Kontonummer), Count(kunden.mitgliedsNr) AS AnzahlVonDuplikaten FROM kunden GROUP BY kunden.mitgliedsNr, kunden.Kontonummer HAVING (((Count(kunden.mitgliedsNr))>1) AND ((Count(kunden.Kontonummer))>1));
forTeesSake Geschrieben 13. Februar 2006 Autor Geschrieben 13. Februar 2006 SELECT DISTINCTROW First(kunden.mitgliedsNr), First(kunden.Kontonummer), Count(kunden.mitgliedsNr) AS AnzahlVonDuplikaten FROM kunden GROUP BY kunden.mitgliedsNr, kunden.Kontonummer HAVING (((Count(kunden.mitgliedsNr))>1) AND ((Count(kunden.Kontonummer))>1));
geloescht_JesterDay Geschrieben 13. Februar 2006 Geschrieben 13. Februar 2006 z.b. 1. kunde mitgliedsnummer = 90 kontonummer = 12345 2. kunde mitgliedsnummer = 90 kontonummer = 12345 SELECT T1.MNr FROM Kunden T1 JOIN Kunden T2 ON (T1.MNr = T2.MNr AND T1.KNR = T2.KNr) Liefert dir alle Mitgliedsnummern, die auf dein obiges Beispiel passen.
forTeesSake Geschrieben 13. Februar 2006 Autor Geschrieben 13. Februar 2006 SELECT T1.MNr FROM Kunden T1 JOIN Kunden T2 ON (T1.MNr = T2.MNr AND T1.KNR = T2.KNr) Liefert dir alle Mitgliedsnummern, die auf dein obiges Beispiel passen. hiho. also wenn ich das statement ausführe bekomme ich immer ALLE datensätze. is ja auch klar glaube ich denn T1 und T2 sind ja immer gleich, also erfolg der join über alle rows und alle datensätze wrden ausgegeben...:confused:
geloescht_JesterDay Geschrieben 13. Februar 2006 Geschrieben 13. Februar 2006 is ja auch klar glaube ich denn T1 und T2 sind ja immer gleich, also erfolg der join über alle rows und alle datensätze wrden ausgegeben...:confused: klar... Denkfehler bei mir Muss ich mir nochmal durch den Kopf gehen lassen. EDIT: Hast du noch ein eindeutiges Feld in jedem Satz? Also z.B. eine ID? SELECT T1.MNr FROM Kunden T1 JOIN Kunden T2 ON (T1.MNr = T2.MNr AND T1.KNR = T2.KNr AND T1.id <> T2.id) sollte nämlich gehen
forTeesSake Geschrieben 20. Februar 2006 Autor Geschrieben 20. Februar 2006 hallo nochmals, also ich versuche mich nun schon ne woche weiter an dem passenden statement, finde aber leider keines... hat jemand in der zwischenzeit noch eine idee gefunden und sich bloss nicht getraut sie zu posten? :hells: vielen dank für alle tipps im vorraus
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden