В предедущем запросе формат недели YYYY-WW дал неправильные результаты. Он не показывал первые 4 недели года. Причину не знаю. Если формат недели YYYY.WW работает нормально. И тут добавил фильтр по дата начало и дата окончание отчетного периода.
PHP код:
Select Distinct d.Id,
d.Str,
To_Char(Max(Date_Ini) Over(Partition By To_Char(Date_Ini, d.Format)),
d.Format) Date_Ini,
Sum(Br_1) Over(Partition By To_Char(Date_Ini, d.Format)) Br1,
Sum(Br_2) Over(Partition By To_Char(Date_Ini, d.Format)) Br2,
Sum(Br_3) Over(Partition By To_Char(Date_Ini, d.Format)) Br3,
Sum(Br_4) Over(Partition By To_Char(Date_Ini, d.Format)) Br4,
Sum(Br_5) Over(Partition By To_Char(Date_Ini, d.Format)) Br5,
Max(Date_Ini) Over(Partition By To_Char(Date_Ini, d.Format)) Sort_Date
From Task_1,
(Select 0 Id, 'Daily' Str, 'YYYY-MM-DD' Format From Dual
Union
Select 1 Id, 'Weekly' Str, 'YYYY.WW' Format From Dual
Union
Select 2 Id, 'Monthly' Str, 'YYYY-MM' Format From Dual
Union
Select 3 Id, 'Quarter' Str, 'YYYY-Q' Format From Dual
Union
Select 4 Id, 'Year' Str, 'YYYY' Format From Dual) d
Where Trunc(Date_Ini) >= To_Date('20110101','YYYYMMDD')
And Trunc(Date_Ini) < To_Date('20130101','YYYYMMDD')
Order By 9,1