SQL中的数据透视表

时间:2013-09-27 20:38:41

标签: sql-server sql-server-2008 tsql

这是表格中的数据集 表XYZ

    ID  Date        col1    col2    col3
     1  2012-09-21  100.00  0.00    0.00
     1  2012-09-21  0.00    10.00   20.00
     2  2012-09-21  0.00    20.00   0.00
     2  2012-09-21  100.00  0.00    20.00
     3  2012-09-21  10.00   25.00   5.00

我想要如下结果:

 ID Date        COL
 1  2012-09-21  130.00
 2  2012-09-21  140.00
 3  2012-09-21  40.00

我在“查询”下面尝试过,但没有从表中获取确切的值。

        Select ID,
                 date,
                 sum(Col1+col2+col3) as COL
           From table xyz
         Group by ID,DATE

我得到了以下结果集

  ID    Date        COL
   1    2012-09-21  130.00
   2    2012-09-21  270.00
   3    2012-09-21  310.00

有没有更好的方法来获得预期的结果集或进行数据透视表?

由于

1 个答案:

答案 0 :(得分:0)

您可以使用CTE,然后在结果上使用group by。

WITH S AS(SELECT ID,DATE,COL1 + COL2 + COL3 AS.COLS FROM TABLE1);     SELECT ID,DATE,SUM(COLS)     来自S.     GROUP BY ID,DATE