2013-09-23 72 views
0

我需要建立基於缺勤報告,目前該數據存儲在表結構如下:SQL套牢數據結構表中的

Date | Name1 | Name2 | Name3 | Name4 | Name5 

每次僱員已關閉其員工ID被添加到其關閉日期旁邊的一列中。我努力想出一個像樣的使用數據的體面方式。

理想情況下,我希望實現的是扭轉數據的方式,以便員工ID具有日期,而不是每個日期5列,如果5個人關閉的話。例如:

EmpName | Date 
JWC  | 22/03/2013 
JWC  | 23/03/2013 

從來沒有做過任何類似的事情,所以有點失落之前。在這種情況下樞軸會有幫助嗎?

回答

1

使用UNPIVOT:

SELECT 
    empl 
    , dt 
FROM 
    ( 
     SELECT 
      dt, 
      id1, 
      id2, 
      id3 
     FROM 
      data 
) d 
UNPIVOT 
( 
    empl FOR epl IN (id1, id2, id3) 
) u 
ORDER BY 
    empl, 
    dt 

SQL-Fiddle

0

正試圖將這個大規模複雜化,簡單的做了幾個工會來整理它們,並把它們放到不同的表格中。可能不是最好的分辨率,但它完美的作品。