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 に答える