Помогите с T-SQL Self Jight
-
26-09-2019 - |
Вопрос
На основе следующей таблицы
ID Date State
-----------------------------
1 06/10/2010 Complete
1 06/04/2010 Pending
2 06/06/2010 Active
2 06/05/2010 Pending
Я хочу следующую науптую
ID Date State
---------------------------
1 06/04/2010 Complete
2 06/05/2010 Active
Таким образом, дата является самым ранним, а государство является последним. Я не могу применить Self присоединиться к столу, чтобы получить выход.
Спасибо
Решение
Использовать:
SELECT t.id,
MIN(t.date),
(SELECT TOP 1
x.state
FROM TABLE x
WHERE x.id = t.id
ORDER BY x.date DESC)
FROM TABLE t
GROUP BY t.id
Другие советы
select ID, min(Date) Date, (select State
from tbl
where ID = t.ID and
Date = (select max(Date)
from tbl
where ID = t.ID)) State
from tbl t
group by ID
Не связан с StackOverflow