2017-02-26 41 views
0

拆分一列多列我有一個包含1年根據數據

AttID Present absent. leave sick month StdRegNo 
1.  23  1  0  0 JAN. 1 
2.  25  0  0  0 JAN. 2 
3.  23  0  0  0 MAR. 1 
4.  21  3  0  1 MAR. 2 
SO ON....... 

我想導致這樣的視圖,作爲波紋管的STD出勤的數據的表:

StdReq month P A L S month P A L S 
1.  Jan. 23 1 0 0 Mar 23 0 0 0 
2.  Jan. 25 0 0 0 Mar 21 3 0 1 

我需要這個觀點12個月我該怎麼做?請幫我

+0

你的問題是關於擺動你可以搜索它在你的DBMS,並找到它)。 –

+0

[在SQL Server中使用'Pivot'將行轉換爲列]可能的副本(http://stackoverflow.com/questions/15931607/convert-rows-to-columns-using-pivot-in-sql-server) –

+0

Can有誰給我一個例子? – user7624724

回答

0

您可以使用這樣的查詢:

select StdRegNo 
    -- January info 
    ,max(case when [month] = 'JAN' then Present end) JAN_P 
    ,max(case when [month] = 'JAN' then [absent] end) JAN_A 
    ,max(case when [month] = 'JAN' then leave end) JAN_L 
    ,max(case when [month] = 'JAN' then sick end) JAN_S 
    -- March info 
    ,max(case when [month] = 'MAR' then Present end) MAR_P 
    ,max(case when [month] = 'MAR' then [absent] end) MAR_A 
    ,max(case when [month] = 'MAR' then leave end) MAR_L 
    ,max(case when [month] = 'MAR' then sick end) MAR_S 
    -- And so on ... 
from yourTable 
group by StdRegNo; 
+0

謝謝先生,它的工作正是我所需要的 – user7624724