求一列累加SQL语句,在线等。。。

yinsuxia 2015-09-23 04:50:20
数据:
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数值累加起来的。
...全文
311 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
spiritofdragon 2015-09-23
  • 打赏
  • 举报
回复
--需要按不同地区分组累加么?需要的话用上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

xqchenxue2 2015-09-23
  • 打赏
  • 举报
回复
select * ,(select sum(SKU) from tableName where id<= a.id) as 累加列 from tableName a 当然,那个sum()时面的东西你自己处理一下了,因为你的有个%号,另外tableName的排列顺序也最好处理一下了,我就不写了,那个太简了
qq_17482963 2015-09-23
  • 打赏
  • 举报
回复

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
  • 打赏
  • 举报
回复
selete * from table; 不用谢

34,837

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧