当前位置: 代码迷 >> Sql Server >> 求一列累加SQL语句,
  详细解决方案

求一列累加SQL语句,

热度:64   发布时间:2016-04-24 08:52:35.0
求一列累加SQL语句,在线等。。。
数据:
Name        Region          sku
A医院         N                    10%
B医院         N                     5%
C医院        N                     15%

结果:

Name     Region             SKU       累加列
A医院         N                    10%          10%
B医院         N                     5%             15%
C医院        N                     15%            30%
意思就是需要查询结果多加一列,列的值是每行的SKU数值累加起来的。
------解决思路----------------------

with tb as
(
select *,row_number()over(order by getdate())rn from table1  --table1你的表
)
select a.*,b.累加列from tb a cross apply (select Name,SUM(SKU)as [累加列] from tb where rn<=a.rn group by Name) b where a.Name=b.Name

------解决思路----------------------
select   * ,(select sum(SKU)  from tableName where id<= a.id) as 累加列  from tableName a
当然,那个sum()时面的东西你自己处理一下了,因为你的有个%号,另外tableName的排列顺序也最好处理一下了,我就不写了,那个太简了
------解决思路----------------------
--需要按不同地区分组累加么?需要的话用上partition ,不需要的话不用
with tt as (
select *,ROW_NUMBER()over(partition by Region order by Name) rn
from t 
)
select *,(select SUM(sku) from tt t2 where t2.Region=tt.Region and t2.rn<=tt.rn ) 累加列--sku如果是字符串,需要转型
from tt

  相关解决方案