3

次のテーブルを生成するクエリを作成しようとしています。列名を知っています(つまり、各列の開始日と終了日です。これらの日付は月/年によって異なります。また、月によっては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    |
--------------------------------------------------  
4

1 に答える 1

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
于 2013-01-17T18:27:54.190 に答える