|
Оптимизация запроса
|
|||
---|---|---|---|
#18+
Запрос генерируется динамически. Название столбцов обозначены месяцами(1..12, январь..декабрь). по каждому месяцу выдает сумму. Но из за того, что столбец- это месяц , т.е. период времени указывается всегда разный, Получается 12 конкотенируемых подзапросов(очень громоздкий код). можно как то связать месяца и данные одним подзапросом. если можно пример. пока реализовано так begin for dt in 1..12 loop dt1 :=dt1||', d'||dt||'.m'||dt||' as "'||dt||'"'; dt2:=dt2||', SUM m'||dt||' from таблицы where условия and Дата between месяц and месяц+1 ) d'||dt||''; end loop; g:='select '||dt1||' from '||dt2; Модератор: Тема перенесена из форума "Microsoft SQL Server". ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2011, 17:01 |
|
Оптимизация запроса
|
|||
---|---|---|---|
#18+
Вопрос снят. Cделал через Decode. begin for dt in 1 ..to_char(LAST_DAY(trunc(****)), 'DD') loop dt1 :=dt1||', Decode( ***, '||dt||' , ***, null)'; end loop; dt2:= ' (select *** from *** where ***)'; dt1 :=LTRIM(dt1,','); g:= 'select ''Hi'' as " ", '||dt1||' from '||dt2; end; ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2011, 16:23 |
|
|
start [/forum/topic.php?fid=50&gotonew=1&tid=1876418]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
34ms |
get topic data: |
13ms |
get first new msg: |
8ms |
get forum data: |
3ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
others: | 263ms |
total: | 394ms |
0 / 0 |