Oracle之pivot函數(行轉列用法)


有這樣一種表,每種費用都用記錄1-12個月的費用,如差旅費、招待費要在表中記錄1-12個月的數據,每個人要記錄12條表示1-12個月的差旅費。。。

如:

 

 我用的是oralc數據庫

業務需求是:把每個人1-12個月的數據在表中都有12條,把12條轉成橫向一條數據1月差旅費、2月差旅費,3月差旅費、、、等等,sql如下:

select *  
  from (select project_id as pid,   
               substr(mon, 0, 4) year,  
               to_number(substr(mon, 5)) mon, 
               entertains_fee,      
               travel_fee           
          from psl_project_budget)  
          pivot(sum(entertains_fee) entertains_fee, sum(travel_fee) travel_fee    
          for mon in(1,2,3,4,5,6,7,8,9,10,11,12))

 

 

 

=========================查出結果如下:===========================

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

。。。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM