SQL Server 2008 - 累积列

标签 sql sql-server sql-server-2008 accumulate

我想积累我的数据,如下所示,有原始表table1:

  1. 执行此操作的最佳查询是什么?
  2. 当我添加更多类型的术语时,可以动态执行此操作吗?

表1

ID  |  term  |  value
-----------------------
1   |   I    |   100
2   |   I    |   200
3   |   II   |   100
4   |   II   |    50 
5   |   II   |    75
6   |   III  |    50
7   |   III  |    65
8   |   IV   |    30
9   |   IV   |    45

结果应该如下所示:

YTD  | Acc Value
------------------
I-I  |   300
I-II |   525
I-III|   640
I-IV |   715

谢谢

最佳答案

    select 
        (select min(term) from yourtable ) +'-'+term,       
        (select sum(value) from yourtable  t1 where t1.term<=t.term)
    from yourtable t 
    group by term

关于SQL Server 2008 - 累积列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19450090/

相关文章:

php - SQL 查询始终选择不匹配的行

mysql - 如何返回Name及其特定ID?

sql时区计算

sql-server-2008 - sql server删除列重建索引吗?

sql - 如何手动插入身份?

SQL:引用一对多

sql - SSRS - 按多个值分组

sql - 如果 SQL Server 2008 中存在子级,则防止删除或更新父级

sql-server - 人名的最佳实践

sql-server-2008 - 带有 SSRS 2008 参数的 "Select All"