【发布时间】:2016-10-27 01:49:42
【问题描述】:
这是我当前表格的示例:
ProjectID Level Cost
--------- --------- ---------
101 LVL_1 1000.00
101 LVL_2 2500.00
102 LVL_1 1500.00
102 LVL_2 3000.00
103 LVL_2 1200.00
当我运行以下查询时:
SELECT
ProjectID,
CASE WHEN Level = 'LVL_1'
THEN Cost
END AS Level1,
CASE WHEN Level = 'LVL_2'
THEN Cost
END AS Level2,
SUM(Cost)
FROM
Table
GROUP BY
Level,
ProjectID
我得到的结果集如下:
ProjectID Level1 Level2 TotalCost
--------- --------- --------- ---------
101 1000.00 NULL 3500.00
101 NULL 2500.00 3500.00
102 1500.00 NULL 4500.00
102 NULL 3000.00 4500.00
103 NULL 1200.00 1200.00
但是我需要的是这个布局:
ProjectID Level1 Level2 TotalCost
--------- --------- --------- ---------
101 1000.00 2500.00 3500.00
102 1500.00 3000.00 4500.00
103 NULL 1200.00 1200.00
我意识到问题出在 Group by,因为我不想按级别分组,我只想按 ProjectID 本身分组。 但是,由于我正在使用 SUM 函数,因此我不确定如何解决此问题,我们将不胜感激。 提前致谢!
还要注意,我的查询比这更复杂。这是一个简化版。
【问题讨论】:
标签: sql sql-server sql-server-2008 tsql group-by