У меня ниже таблицы (образец):
ID Value Date
TT-12 call rs 2018-04-01 15:18:22
TT-12 srte er 2018-04-02 12:15:18
TT-12 efft rs 2018-04-03 13:04:08
TT-14 efft rs 2018-04-04 17:16:10
TT-14 call rs 2018-04-05 16:25:43
TT-14 srte rs 2018-04-06 21:11:47
TT-18 srte rs 2018-04-07 22:18:34
TT-18 call rs 2018-04-08 07:11:35
TT-18 call rs 2018-04-09 13:07:25
Из приведенной выше таблицы я хочу получить только те строки, которые имеют значение Call rs
против определенного ID
с самым старым временем.
Требуемый вывод:
ID Value Date
TT-12 call rs 2018-04-01 15:18:22
TT-14 call rs 2018-04-05 16:25:43
TT-18 call rs 2018-04-08 07:11:35
Я пытаюсь: select ID,Value,Date from Table1 where ID in ('TT-12','TT-14','TT-18') and order by Value='call rs';
Сделайте самостоятельное соединение, чтобы получить самую старшую строку на ID
SELECT
a.*
FROM
table1 a
LEFT JOIN table1 b
ON a.ID = b.ID
AND a.'Date' > b.'Date'
AND b.'Value' = 'call rs'
WHERE b.ID IS NULL
AND a.'Value' = 'call rs'
AND a.ID IN ('TT-12', 'TT-14', 'TT-18')
Попробуй это,
select ID, Value, min(Date) as date
from <Table>
where ID in ('TT-12','TT-14','TT-18') and Value = 'call rs'
group by ID, Value
select ID,Value,Date from Table1 where Value='call rs' group by ID order by Date desc;