2

我想转置以下 SQL 结果:

Asum  week_no
1      22          
2      24          

进入这样的表:

Aweek_22week_23week_24
1             0             2             

我怎样才能在 Oracle 上实现这一点?谢谢!(我应该考虑多年来的每周数据,因此不能选择构建案例)

4

1 回答 1

1

大多数情况下,我假设对您的示例数据进行此查询,它将填补第几周的空白并透视结果集

Select A,[22] [week_22],[23] [week_23],[24] [week_24] from (
Select A,Sum,Weekno from Table 
UNION
Select * from ( 
SELECT  top 1 t1.A,'' AS Sum,t1.Weekno-1 AS Weekno
FROM     Table t1
LEFT OUTER JOIN 
         Table  t2 
ON       t2.Weekno=t1.Weekno-1 
WHERE    t2.Weekno IS NULL 
AND      t1.Weekno > 0     
ORDER BY t1.Weekno desc )T)TT
PIVOT (MAX(SUM) FOR WEEKNO IN ([22],[23],[24]))PVT
于 2016-06-27T13:10:48.370 回答