Gegeben:
Zwei Abfragen, die gefiltert werden müssen:
select top 2 t1.ID, t1.ReceivedDate
from Table t1
where t1.Type = 'TYPE_1'
order by t1.ReceivedDate desc
Und:
select top 2 t2.ID
from Table t2
where t2.Type = 'TYPE_2'
order by t2.ReceivedDate desc
Getrennt davon geben diese die ID
s, die ich suche: (13, 11 und 12, 6)
Im Grunde möchte ich die beiden jüngsten Datensätze für zwei bestimmte Datentypen.
Ich möchte diese beiden Abfragen folgendermaßen zusammenführen:
select top 2 t1.ID, t2.ReceivedDate
from Table t1
where t1.Type = 'TYPE_1'
order by ReceivedDate desc
union
select top 2 t2.ID
from Table t2
where t2.Type = 'TYPE_2'
order by ReceivedDate desc
Problem:
Das Problem ist, dass diese Abfrage ungültig ist, weil die erste select
kann nicht über eine order by
Klausel, wenn es sich um unioned
. Und es kann nicht haben top 2
ohne dass die order by
.
Wie kann ich diese Situation beheben?