2013-09-21 33 views
0

是否有可能通過多列分組將多個行值返回到列中將多行中的值作爲多列分組的列作爲列

具有不同。

如果我的表是:

QUantityTypeID      數量   訂購日期    CompanyID    類型名

--------------                     --------     -----------     ----------------     ----------

                                                7.0000     2013年9月2日                                               銷售

                                                4。0000     2013年9月15日                                           銷售

                                                1.0000     2013年9月16日                                               銷售

                                                1.0000     2013年9月16日                                               銷售

                                                1。0000     2013年8月25日                                           銷售

                                                1.0000     2013年8月25日                                       銷售

                                                1。0000     2013年9月11日                                           銷售

的選擇應該返回:

奧德erDate                                                                             CompanyID    類型名   

-----------                 -----         - ---                 ------         ------         ----------------         ------- ---

2013年8月25日      NULL     1.0000     1.0000     NULL            個1            銷售

  2013年9月2日    7。0000     NULL     NULL     NULL                    銷售

  2013年9月11日    NULL     NULL     NULL     1.0000        個           銷售

  2013年9月15日    4.0000     NULL     NULL     NULL                    銷售

  2013年9月16日    1.0000     NULL     NULL     NULL                    銷售

  2013年9月16日    1.0000     NULL     NULL     NULL                    銷售

+0

見http://stackoverflow.com/questions/24470/sql-server-pivot-examples/40434#40434 – bfavaretto

回答

2

你需要轉動你的數據。

SELECT 
    OrderDate, [1], [2], [3], [4], CompanyID, TypeName 
FROM test 
PIVOT 
(
    MAX(Quantity) 
    FOR QUantityTypeID IN ([1], [2], [3], [4]) 
) as p 

SQL FIDDLE DEMO