Дано:
Два запроса, требующие фильтрации:
select top 2 t1.ID, t1.ReceivedDate
from Table t1
where t1.Type = 'TYPE_1'
order by t1.ReceivedDate desc
и
select top 2 t2.ID
from Table t2
where t2.Type = 'TYPE_2'
order by t2.ReceivedDate desc
Отдельно, они возвращают ID
, который я ищу: (13, 11 и 12, 6)
В принципе, мне нужны две самые последние записи для двух конкретных типов данных.
Я хочу объединить эти два запроса вместе так:
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
Проблема:
Проблема в том, что этот запрос недействителен, потому что первый select
не может иметь предложение order by
, если оно unioned
. И он не может иметь top 2
без order by
.
Как я могу исправить эту ситуацию?