SQL Abfrage: Bei "identischen" Datensätzen nur den ersten anzeigen

mario

Neuer Benutzer
Beiträge
2
Hallo Zusammen,

erster Post hier, bin kein SQL Experte, wäre super wenn ihr mir hier helfen könntet.
Folgende Aufgabenstellung:
Wir haben Datensäte die teilweise bis auf die Schlüssel ID identisch sind.
Wir würden nun gerne davon jeweils einen anzeigen lassen, jedoch mit der Schlüssel ID.
D.h. der "erste" der gefunden wird soll komplett angezeigt werden.

Beispiel

ID Name Datum Zeit Status
1 Hans 01.01.12 06.06 OK
2 Hans 01.01.12 06.06 OK
3 Hans 01.01.12 12.01 AUSGELIEFERT

In dem Fall hätten wir gerne die 1 und die 3 angezeigt. Ich habe es über mehrere Group By s versucht, jedoch kann ich dann natürlich keine ID mehr anzeigen, diese muss aber vorhanden sein da Sie in der Anwendung noch andere Funktionen übernimmt.

Danke schon mal für eure Hilfe!

Grüße

Mario
 
Werbung:

ukulele

Datenbank-Guru
Beiträge
4.644
Ja das geht, man muss nur erstmal drauf kommen. Du musst deine gruppierte Tabelle mit der selben Tabelle joinen und dann jeweils den erst besten Wert abgreifen. Wobei zunächst mal klar sein muss, das es keinen "ersten" Wert gibt in einer SQL Tabelle, der erste Wert ist also nicht zwangsläufig zuerst in der Tabelle gewesen.

Code:
SELECT    t2.ID,
        t1.*
FROM    (    SELECT    Name,
                    Datum,
                    Zeit,
                    [Status]
            FROM    tabelle
            GROUP BY Name,Datum,Zeit ) t1,
        (    SELECT    TOP 1 ID
            FROM    tabelle
            WHERE    Name = t1.Name
            AND        Datum = t1.Datum
            AND        Zeit = t1.Zeit
            AND        [Status] = t1.[Status] ) t2
 
Werbung:

mario

Neuer Benutzer
Beiträge
2
Dank dir schon mal, werde es so versuchen. Und ja, die Formulierung "erster" war nicht optimal, im Prinzip ist es auch egal welcher, da der Inhalt immer der selbe ist...
 
Oben