Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

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

Dieses Thema im Forum "Microsoft SQL Server" wurde erstellt von mario, 11 Juli 2012.

  1. mario

    mario Neuer Benutzer

    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
     
  2. ukulele

    ukulele Datenbank-Guru

    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
     
  3. mario

    mario Neuer Benutzer

    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...
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden