Duplikate filtern

twistermcneal

Grünschnabel
Duplikate filtern MSSQL

Hallo,
habe folgendes Problem:

Tabelle :

uid;SN; Dat_Uhr
1 ;10 ; 01.01.2007 10:00:00
2 ;10 ; 02.01.2007 10:00:00
3 ;12 ; 01.01.2007 10:00:00
4 ;12 ; 02.01.2007 10:00:00
5 ;12 ; 03.01.2007 10:00:00
6 ;13 ; 01.01.2007 10:00:00

benötige nun ein SELECT Statement das mir die doppelten SN einträge filtert und nur den letzten verwendeten SN Eintrag anzeigt
also:
uid;SN; Dat_Uhr
2 ;10 ; 02.01.2007 10:00:00
5 ;12 ; 03.01.2007 10:00:00
6 ;13 ; 01.01.2007 10:00:00

DISTINCT kann leider nicht angewendet werden da es sich um nText() feld handelt und darauf keine Distinct abfragen laufen

Server MSSQL 2005
 
Zuletzt bearbeitet:
Ich hab ein ähnliches Problem, allerdings möchte ich das Duplikate garnicht ausgegeben werden.

z.b.

ID
1
2
3
4
5
5
6

Ausgegeben werden soll:
1
2
3
4
6

Oder:

ID
1 ohne Wert soll ausgegeben werden
2 ohne Wert soll ausgegeben werden
3 ohne Wert soll ausgegeben werden
4 ohne Wert soll ausgegeben werden
5 ohne Wert soll NICHT ausgegeben werden
5 mit Wert soll ausgegeben werden
6 ohne Wert soll ausgegeben werden

oder nur die 5 mit einem bestimmten 2ten Wert allerdings aber auch die NR 1-6 zusätzlich ohne die NR 5 mit keinem Wert (Ich weiß hört sich kompliziert an) ^^
 
Zuletzt bearbeitet von einem Moderator:
Hallo,
danke für die schnelle Antwort..

Das Ergebnis stimmt soweit benötige nun aber auch andere Felder nicht nur SN,Dat_Uhr sondern zum Beispiel auch die uid als ausgabe.

also
uid; SN; dat_uhr; data_1; data_2 ....
wie erhalte ich diese felder auch in der ergnismenge mit * können angeblich nicht grupiert werden
 
Ok dann muss man doch ein bisschen tricksen :)
SQL:
select uid,SN, dat_uhr,data_1,data_2
from tabelle t1
join (
  SELECT SN SN2, MAX(Dat_uhr) as Dat_Uhr2
  from tabelle
  group by SN
) t2 on ( t1.SN=t2.SN2 and t1.dat_Uhr = t2.Dat_Uhr2)
 
Zurück