永发信息网

SQL 行累计

答案:3  悬赏:80  手机版
解决时间 2021-01-28 13:29
表A
列A 列B
100 50
80 40
200 100

希望得到查询出如下数据
列X为上行的X累加本行的A-B的余数
列A 列B 列X
100 50 50
80 40 90
200 100 190

create table t(a varchar,b int,x int,y int)
insert into t values('a','1','10','7')
insert into t values('b','1','12','6')
insert into t values('a','2','10','5')
insert into t values('b','2','10','4')
insert into t values('a','3','10','3')
insert into t values('c','1','10','2')
insert into t values('1','1','10','1')
select *,z=(select SUM(x-y) from t where t.b<=tt.b) from t
这样的结果不能满足要求,还需要更具a列分组
select *,z=(select SUM(x-y) from t where t.b<=tt.b group by a) from t tt
报错(子查询返回的值不止
请告诉我报错的原因,及正确的SQL,谢谢!
最佳答案
create table result_tb (sn int AUTO_INCREMENT, 列A int,列B int,列X int);
insert into result_tb (列A,列B) select 列A,列B from 表A;
update result_tb set 列X=sum(列A-列B) where sn<2;
update result_tb set 列X=sum(列A-列B) where sn<3;
update result_tb set 列X=sum(列A-列B) where sn<4;
全部回答
select *,z=(select SUM(x-y) from t where t.b<=tt.b group by a) from t tt这个有多个返回值报错。试下面的写法 select 列A,列B,sum(列B)over(order by 列B)列X from 表A
私信我,留下QQ,告诉你最好的解决办法,肯定高效 再看看别人怎么说的。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
润林老银匠怎么去啊,我要去那办事
离婚后在婚需要什么手续
八年级下册语文古文中的词类活用、一词多义、
极品心情天然水晶宝石系列(丽江店)怎么去啊,
梦见新钱包
走露的意思是什么啊?知道的请说下!
三方协议盖了一家单位的公章,学校的公章还没
志意银器地址好找么,我有些事要过去
一条路,已修与未修的比为1:4,如果再修120米,
新优悦110换什么机油好
钻石皇冠地址好找么,我有些事要过去
波斯店的意思是什么啊?知道的请说下!
迷失森林怎么找到飞机头
【春秋三传是哪三传】春秋三传是哪三个
修理电脑黑屏,要多少钱
推荐资讯
清新干洗行(嫩江南街14)地址在什么地方,想过
补考要80元科目二,可是为什么要再给教练几百
我想问下,我的房贷先是本金少,利息多,后来
鱼粮的意思是什么啊?知道的请说下!
细胞周期中限制点和检测点?
月规的意思是什么啊?知道的请说下!
神武和小朋友一起玩哪个游戏比较好
襄州区直机关幼儿园地址在哪,我要去那里办事
罗蒙丹尼斯商场地址好找么,我有些事要过去
韩风的意思是什么啊?知道的请说下!
水云涧茶馆地址好找么,我有些事要过去
到银行办理个人存款要经过哪几个步骤,存款单
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?