SQL - nur Daten mit niedrigster ID ausgeben
Hallo, ich habe folgende Tabelle:
Projekt ID Notiz
12 1 abc
12 2 xyz
13 6 grt
13 8 lkt
15 3 dfg
15 4 rtz
Ich möchte immer nur die Notiz mit der niedrigsten ID von jedem Projekt ausgeben.
Also am Ende soll es so ausgegeben werden:
Projekt ID Notiz
12 1 abc
13 6 grt
15 3 dfg
Wie kann ich das machen?
Mit Top 1, distinct und min(id) hat es nicht funktioniert.
Projekt ID Notiz
12 1 abc
12 2 xyz
13 6 grt
13 8 lkt
15 3 dfg
15 4 rtz
Ich möchte immer nur die Notiz mit der niedrigsten ID von jedem Projekt ausgeben.
Also am Ende soll es so ausgegeben werden:
Projekt ID Notiz
12 1 abc
13 6 grt
15 3 dfg
Wie kann ich das machen?
Mit Top 1, distinct und min(id) hat es nicht funktioniert.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 336291
Url: https://administrator.de/forum/sql-nur-daten-mit-niedrigster-id-ausgeben-336291.html
Ausgedruckt am: 02.05.2025 um 18:05 Uhr
1 Kommentar
Die Lösung heisst Gruppieren in einer Unterabfrage
SELECT T.Projekt,T.ID,T.Notiz
FROM Tabelle AS T
WHERE T.ID IN (SELECT Min(tbl.ID) FROM Tabelle AS tbl GROUP BY tbl.Projekt)
(ungetestet, geht bestimmt noch eleganter)
Gruß
Apophis
P.S. Ich seh gerade: das geht nur, wenn die ID eindeutig ist. Wenn doppelte IDs vorkommen können, muss man noch etwas basteln.
SELECT T.Projekt,T.ID,T.Notiz
FROM Tabelle AS T
WHERE T.ID IN (SELECT Min(tbl.ID) FROM Tabelle AS tbl GROUP BY tbl.Projekt)
(ungetestet, geht bestimmt noch eleganter)
Gruß
Apophis
P.S. Ich seh gerade: das geht nur, wenn die ID eindeutig ist. Wenn doppelte IDs vorkommen können, muss man noch etwas basteln.