2013-09-21 34 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