对列中的值进行排名

时间:2015-11-09 21:10:00

标签: sql sql-server-2008

我有一个表,其中包含一个具有状态的单个ID的多个预算记录,我需要能够对预算求和并根据某些预定义的层次结构提取状态。因此,如果任何记录例如说“预测”,我需要将总和标记为预测。

ID      Status       Budget
1       Forecast     50
1       Forecast     100
1       Final        50
2       Final        75
2       Final        75

我需要上面的表格返回:

1 forecast 200
2 final 150

理想情况下,我可以在此层次结构中添加3或4个级别,但只有两个级别是完全必要的。

1 个答案:

答案 0 :(得分:0)

您应该可以使用group by子句执行此操作:

SELECT ID, Status, sum(Budget) forecast --this aliases the sum column so it's called "forcast" in query results
FROM your_table
 --WHERE status like 'Forecast%' --commented out this line but you may want it to limit the rows utilized in the sum.
GROUP BY ID, Status
ORDER BY 3 DESC