Я пытаюсь создать запрос, который будет генерировать следующую таблицу. Я знаю имена столбцов (это дата начала и окончания каждого столбца. Эти даты будут варьироваться в зависимости от месяца / года. Также количество столбцов будет варьироваться, поскольку в некоторых месяцах может быть 6 недель).
Количество бассейнов также может быть разным. Пулов может быть n. Итак, я создал запрос для каждого пула (строки) и для каждой недели (столбца).
Предположим, есть 3 пула (3 строки) и 5 недель (5 столбцов), мне может потребоваться выполнить 3 * 5 = 15 запросов.
Есть ли способ создать единый запрос, чтобы исправить это?
Может ли кто-нибудь помочь мне исправить это?
Я все еще работаю над этим ..
--------------------------------------------------
row 0 | week1 | week2 | week3 | week4 | week5 |
st-end|jan1 -2|jan 3-9|jan10-17|jan18-24|jan25-31|
--------------------------------------------------
pool a| 100 | 105 | 309 | 345 | 234 |
pool b| 106 | 108 | 399 | 245 | 214 |
pool c| 120 | 145 | 359 | 365 | 274 |
--------------------------------------------------
1 ответ
Вы пробовали делать это, используя выражения CASE? [См. «Функции потока управления»] Что-то вроде этого:
select POOL
,sum(case when dt between 20120101 and 20120107 then VAL else 0) as Wk1
,sum(case when dt between 20120108 and 20120114 then VAL else 0) as Wk2
... ...
from MY_TABLE
group by POOL
Похожие вопросы
Новые вопросы
java
Java — это высокоуровневый объектно-ориентированный язык программирования. Используйте этот тег, если у вас возникли проблемы с использованием или пониманием самого языка. Этот тег часто используется вместе с другими тегами для библиотек и/или фреймворков, используемых разработчиками Java.