可能以前有人提过的问题。。不过有点难。

ju897d 2006-05-31 10:19:01
要求只能用select实现
TABLE A
ID DATA1 DATA2
1 33 44
2 23 20
3 442 10
实现:
ID DATA3
1 77
2 120
3 572
就是ID=2时,DATA3=33+44+23+20,就是对应第一张表ID<=2时,DATA1和DATA2的统计值。
再说一次。只能用一条语句并且只能用select实现。
...全文
100 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
zlp321002 2006-05-31
  • 打赏
  • 举报
回复
declare @t table(id int ,DATA1 int ,DATA2 int)
insert into @t select 1,33,44
union all select 2,23,20
union all select 3,442,10

select id,DATA3=(select sum(DATA1+DATA2) from @t where id<=a.id)
from @t a

/*
id DATA3
----------- -----------
1 77
2 120
3 572

(3 行受影响)

*/
WangZWang 2006-05-31
  • 打赏
  • 举报
回复
Select ID,Data3=(Select sum(DATA1+DATA2) from A where ID<=x.ID)
from A as X

22,298

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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