2017-09-21 194 views
0

我在下面的結構和示例中有一個table1。需要將其顯示爲表2.任何人都可以在此幫忙。Oracle sql或plsql將行轉換爲列

表1

id Month Days 
1 january 20 
2 january 19 
3 january 20 
4 january 21 
5 january 22 
6 january 23 
1 February 18 
2 February 17 
3 February 16 
4 February 15 
5 February 16 
6 February 18 
6 February 18 

表2:

id January February 
1 20 18 
2 19 17 
3 20 16 
4 21 15 
5 22 16 
6 23 18 

回答

2
select id 
    , sum(case when month = 'January' then days end) as january 
    , sum(case when month = 'February' then days end) as february 
    from table1 
group by id; 
0

case語句使你的查詢最佳的解決方案:

select id, 
     sum(
     case when 
       month = 'January' then days 
           else '' end) as january, 
     sum(
     case when 
       month = 'February' then days 
           else '' end) as February  
    from table1 
group by id;