2012-03-23 90 views
2

现状转换成表格与BI

date (nvarchar(9)) 
sku  (nvarchar(5)) 
smith (decimal) 
jones (decimal) 
jonson (decimal) 
nguyen (decimal) 



date   sku smith  jones  johnson  nguyen 
----------------------------------------------------------- 
11/4/2007 X2271  2404 9055,33  7055,22   0 
11/4/2007 B1112 108,99   0  244,92 1001.01 

要求的结果:

date   sku  salesperson sales 
------------------------------------------ 
11/4/2007 X2271  Smith   2404 
11/4/2007 X2271  Jones  9055,33 
11/4/2007 X2271  Johnson  7055,22 
11/4/2007 B1112  Smith   108,99 
11/4/2007 B1112  Johnson  244,92 
11/4/2007 B1112  Nguyen  1001,01 

会需要一些帮助来解决这个问题。此任务与BI任务相关。

回答

2

可以使用UNPIVOT命令来实现这一点。

SELECT 
    date, 
    sku, 
    salesperson, 
    sales 
FROM (
    SELECT 
     date, 
     sku, 
     smith, 
     jones, 
     johnson, 
     nguyen 
    FROM 
     YourTable 
) q 
UNPIVOT 
(sales FOR salesperson in (smith, jones, johnson, nguyen)) AS YourUnpivot