Nur ersten Datensatz eines JOIN
Verfasst: Di 5. Jul 2022, 09:46
Hallo,
ich habe folgendes Szenario :
Tabelle AUFTRAG:
Tabelle INFORMATIONEN:
Ich möchte alle Aufträge haben zu denen eine bestimmte Information hinterlegt ist, allerdings gibt es Fälle, bei denen zu einem Auftrag die Information mehrfach hinterlegt ist, weshalb im Ergebnis bestimmte Aufträge mehrfach enthalten sind. Ich brauche aber jede Auftrags ID nur einmal. Mein Abfrage:
Ich hatte Beispiele gefunden in denen im JOIN eine Art von Subselect enthalten war, aber ich bekomme es nicht hin.
https://stackoverflow.com/questions/204 ... -first-row
Wenn ich den etwas ungewöhnlichen subselect(select List()) für die Infofelder weglasse, kann ich es mit einem DISTINCT lösen...
Beste Grüße - Ulrich
ich habe folgendes Szenario :
Tabelle AUFTRAG:
Code: Alles auswählen
BIGINT ID
TIMESTAMP DATE
Code: Alles auswählen
BIGINT ID
BIGINT AUFTRAG_ID
VARCHAR(64) INFOTEXT
Ich möchte alle Aufträge haben zu denen eine bestimmte Information hinterlegt ist, allerdings gibt es Fälle, bei denen zu einem Auftrag die Information mehrfach hinterlegt ist, weshalb im Ergebnis bestimmte Aufträge mehrfach enthalten sind. Ich brauche aber jede Auftrags ID nur einmal. Mein Abfrage:
Code: Alles auswählen
select ID, DATE,
(select List(INFOTEXT, '|') from INFORMATIONEN where I.AUFTRAG_ID=A.ID) as INFO
from AUFTRAG A
join INFORMATIONEN I on (I.AUFTRAG_ID=A.ID)
where I.INFOTEXT containing :FILTERTEXT
order by A.DATE
https://stackoverflow.com/questions/204 ... -first-row
Wenn ich den etwas ungewöhnlichen subselect(select List()) für die Infofelder weglasse, kann ich es mit einem DISTINCT lösen...
Beste Grüße - Ulrich