Найти минимальнй дату из всех строк и показать эту дату и соответствующий ей id

ZakharovPA
Дата: 19.11.2008 13:47:04
Доброго времени суток.

with t as (
select to_date( '11.12.2007') dopen, 1 id from dual union all
select to_date( '08.05.2008') dopen, 1 id from dual union all
select to_date( '25.12.2006') dopen, 1 id from dual union all
select to_date( '25.12.2006') dopen, 1 id from dual union all
select to_date( '11.12.2007') dopen, 1 id from dual union all
select to_date( '08.05.2008') dopen, 1 id from dual union all
select to_date( '04.01.2007') dopen, 1 id from dual union all
select to_date( '18.12.2006') dopen, 4 id from dual union all
select to_date( '18.12.2006') dopen, 4 id from dual union all
select to_date( '25.06.2007') dopen, 1 id from dual union all
select to_date( '05.05.2008') dopen, 1 id from dual union all
select to_date( '18.12.2006') dopen, 4 id from dual union all
select to_date( '07.05.2008') dopen, 1 id from dual union all
select to_date( '01.08.2008') dopen, 4 id from dual union all
select to_date( '31.01.2007') dopen, 1 id from dual union all
select to_date( '25.12.2006') dopen, 1 id from dual union all
select to_date( '05.05.2008') dopen, 1 id from dual union all
select to_date( '08.05.2008') dopen, 1 id from dual union all
select to_date( '25.12.2006') dopen, 1 id from dual union all
select to_date( '22.06.2007') dopen, 1 id from dual union all
select to_date( '11.12.2007') dopen, 1 id from dual union all
select to_date( '25.12.2006') dopen, 1 id from dual
) select * from t
Найти минимальнй дату из всех строк и показать эту дату и соответствующий ей id
Должно получиться так 18.12.2006 4.
--Eugene--
Дата: 19.11.2008 13:49:13
ZakharovPA,

with t as (
select to_date( '11.12.2007') dopen, 1 id from dual union all
select to_date( '08.05.2008') dopen, 1 id from dual union all
select to_date( '25.12.2006') dopen, 1 id from dual union all
select to_date( '25.12.2006') dopen, 1 id from dual union all
select to_date( '11.12.2007') dopen, 1 id from dual union all
select to_date( '08.05.2008') dopen, 1 id from dual union all
select to_date( '04.01.2007') dopen, 1 id from dual union all
select to_date( '18.12.2006') dopen, 4 id from dual union all
select to_date( '18.12.2006') dopen, 4 id from dual union all
select to_date( '25.06.2007') dopen, 1 id from dual union all
select to_date( '05.05.2008') dopen, 1 id from dual union all
select to_date( '18.12.2006') dopen, 4 id from dual union all
select to_date( '07.05.2008') dopen, 1 id from dual union all
select to_date( '01.08.2008') dopen, 4 id from dual union all
select to_date( '31.01.2007') dopen, 1 id from dual union all
select to_date( '25.12.2006') dopen, 1 id from dual union all
select to_date( '05.05.2008') dopen, 1 id from dual union all
select to_date( '08.05.2008') dopen, 1 id from dual union all
select to_date( '25.12.2006') dopen, 1 id from dual union all
select to_date( '22.06.2007') dopen, 1 id from dual union all
select to_date( '11.12.2007') dopen, 1 id from dual union all
select to_date( '25.12.2006') dopen, 1 id from dual
)
select min(dopen) keep (dense_rank first order by dopen) as dopen,
		min(id) keep (dense_rank first order by dopen) as id
	from t
Legi
Дата: 19.11.2008 13:51:54
select * from t, 
                  (select min(dopen) ddate 
                    from t) t1 
where t1.ddate = t.dopen
Legi
Дата: 19.11.2008 13:53:17
+DISTINCT для уборки дубликатов
xymbo
Дата: 19.11.2008 14:43:40
Legi
+DISTINCT для уборки дубликатов

Не проходит для такого:
with t as (
select to_date( '11.12.2007') dopen, 1 id from dual union all
select to_date( '08.05.2008') dopen, 1 id from dual union all
select to_date( '25.12.2006') dopen, 1 id from dual union all
select to_date( '25.12.2006') dopen, 1 id from dual union all
select to_date( '11.12.2007') dopen, 1 id from dual union all
select to_date( '08.05.2008') dopen, 1 id from dual union all
select to_date( '04.01.2007') dopen, 1 id from dual union all
select to_date( '18.12.2006') dopen, 4 id from dual union all
select to_date( '18.12.2006') dopen, 1 id from dual union all
select to_date( '25.06.2007') dopen, 1 id from dual union all
select to_date( '05.05.2008') dopen, 1 id from dual union all
select to_date( '18.12.2006') dopen, 4 id from dual union all
select to_date( '07.05.2008') dopen, 1 id from dual union all
select to_date( '01.08.2008') dopen, 4 id from dual union all
select to_date( '31.01.2007') dopen, 1 id from dual union all
select to_date( '25.12.2006') dopen, 1 id from dual union all
select to_date( '05.05.2008') dopen, 1 id from dual union all
select to_date( '08.05.2008') dopen, 1 id from dual union all
select to_date( '25.12.2006') dopen, 1 id from dual union all
select to_date( '22.06.2007') dopen, 1 id from dual union all
select to_date( '11.12.2007') dopen, 1 id from dual union all
select to_date( '25.12.2006') dopen, 1 id from dual
)
fy
Дата: 19.11.2008 14:50:21
xymbo,

Что именно не проходит?
--Eugene--
Дата: 19.11.2008 14:51:52
fy,

он о том, что дата 18.12.2006 встречается несколько раз с разными id
fy
Дата: 19.11.2008 14:58:56
--Eugene--
fy,

он о том, что дата 18.12.2006 встречается несколько раз с разными id


ну в условие задачи вполне укладывается

автор
Найти минимальнй дату из всех строк и показать эту дату и соответствующий ей id
--Eugene--
Дата: 19.11.2008 15:01:10
fy,

но какой? - 1 или 4?
fy
Дата: 19.11.2008 15:03:37
--Eugene--
fy,

но какой? - 1 или 4?


Я думаю это надо уточнять у автора топика =)