Табель. Запрос с переменным количеством полей.

Alex2000
Дата: 24.11.2009 10:29:31
Есть форма, напоминающая табель учета рабочего времени - в ней количество колонок равно количеству дней в месяце.
Очень хотелось бы заполнять эту форму универсальным запросом, позволяющим извлекать данные из таблицы вида
select to_date('01.02.2009','dd.mm.yyyy') as data, 100 as amount from dual
union select to_date('02.02.2009','dd.mm.yyyy') as data, 50 as amount from dual
...
union select to_date('28.02.2009','dd.mm.yyyy') as data, 54 as amount from dual

таким образом, чтобы на выходе получалось:

select 100, 50, ..., 54 from dual where to_char(data,'mm.yyyy')='02.2009' 

Количество столбцов можно сделать максимальным - 31, главное, чтобы в несуществующих днях месяца были пустые значения.
Elic
Дата: 24.11.2009 10:32:45
Alex2000
Дата: 24.11.2009 10:35:51
Elic
RTFFAQ Транспонирование строк в столбцы


Разве это одно и то же? Ведь 29-й день для невисокосного года будет выдавать ошибку.
Elic
Дата: 24.11.2009 10:37:02
Alex2000
Разве это одно и то же? Ведь 29-й день для невисокосного года будет выдавать ошибку.
Включи мозг
Alex2000
Дата: 24.11.2009 10:41:32
Elic
Alex2000
Разве это одно и то же? Ведь 29-й день для невисокосного года будет выдавать ошибку.
Включи мозг


Спасибо!

  select
  to_number(to_char(dt, 'dd')) mn,
  sum(amount) sm
  from
(
select to_date('01.02.2009','dd.mm.yyyy') as dt, 100 as amount from dual
union select to_date('02.02.2009','dd.mm.yyyy') as dt, 50 as amount from dual
union select to_date('28.02.2009','dd.mm.yyyy') as dt, 54 as amount from dual
)  
  group by to_number(to_char(dt, 'dd'))