1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| with test as
(
select 1 as id, to_date('12/01/2009', 'dd/mm/yyyy') as tdate from dual union all
select 1, to_date('08/09/2008', 'dd/mm/yyyy') from dual union all
select 1, to_date('07/08/2008', 'dd/mm/yyyy') from dual union all
select 2, to_date('12/04/2009', 'dd/mm/yyyy') from dual union all
select 2, null from dual union all
select 2, to_date('12/01/2009', 'dd/mm/yyyy') from dual
)
SELECT id,
nullif(max(nvl(tdate, date '9999-12-31')), date '9999-12-31') tdate_max
FROM test
GROUP BY id
***************
ID TDATE_MAX
1 12/01/2009
2 |