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 回答