当前位置:首页 » 编程语言 » sql累加
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql累加

发布时间: 2022-01-26 00:44:51

sql 的一个累加算法

select t2.id,t2.a,sum(t1.a)
from t_a t1 left join t_a t2 on t1.id<=t2.id
group by t2.id,t2.a

是这个意思吗?
表名我起的叫t_a,应该和你一样,字段名也引用你的,直接运行看看结果
-----------补充----------
这个就可以显示你要求的结果啊,你是要更新b列的数据吗?你数据库是什么?

更新b列用这个
update t_a set t_a.b=s.sum_value from t_a
inner join (select t2.id,t2.a,sum(t1.a) sum_value from t_a t1 left join t_a t2 on t1.id<=t2.id
group by t2.id,t2.a) s on t_a.id=s.id and t_a.a=s.a

sqlserver下的写法,其他数据库写法可能略有出入,有问题帮你调

㈡ 关于SQL计算累加

--sql 其实很简单 语法你都会 关键是怎么组合
select year,month,(select sum(membercount) from tablename b where b.year=a.year and b.month<=a.month)
all_membercount from tablename a
--注:year和month 无论什么数据类型都不影响 把表名换成你的表名(内表外表表名是一样的) 就可以了
--希望解决了楼主的问题

㈢ SQL查询结果累加

是oracle数据库嘛?

如果是oracle数据库可以这样:

selectnum,name,sum(qty)over(partitionbynameorderbynum)
fromt
orderbynum;


测试:

sys@REPO>witht(num,name,qty)as
2(
3select'001','aa',1fromal
4unionallselect'002','bb',2fromal
5unionallselect'003','aa',2fromal
6unionallselect'004','cc',3fromal
7unionallselect'005','aa',2fromal
8)
9selectnum,name,sum(qty)over(partitionbynameorderbynum)
10fromt
11orderbynum;

NUMNAMESUM(QTY)OVER(PARTITIONBYNAMEORDERBYNUM)
------------------------------------------------------------------------------------------------------------
001aa1
002bb2
003aa3
004cc3
005aa5

㈣ SQl 字符串累加

sql server 2005环境下测试。
select 仓库,物料编码,盘点票号=left(id,len(盘点票号)-1) from
(
select distinct 仓库,物料编码,盘点票号=(select 盘点票号+',' from table1 where 仓库=t1.仓库 and 物料编码=t1.物料编码 for xml path('')) from table1 t1
)t

㈤ SQL 累计递增求和

createviewvw_withsummaryas
selectid,data
,(selectsum(data)
fromthetableb
whereb.id<=a.id
)assummary
fromthetablea

㈥ SQL如何实现累加

你写一个package,package中定义一个全局变量。
然后再写个function,传一个数字,如果是1,就赋值为0。每调用一次这个function, 那全局变量就加1,再返回全局变量的值。

在执行sql 的时候,顺便调用这个function。
select function(rownum),a.* from table a

㈦ 求sql语句,累加

SQL Server 2008 测试通过:

;WITHgoodsAS(
SELECT1ASid,1ASprice
UNIONALL
SELECT2ASid,4ASprice
UNIONALL
SELECT3ASid,6ASprice
UNIONALL
SELECT4ASid,8ASprice
),tmpTableAS(
SELECTa.*,ROW_NUMBER()OVER(ORDERBYa.id,b.number)ASpx
FROMgoodsa,master.dbo.spt_valuesb/*用这表取到的数值只能到2047,所以如果要判断的数大于这个,就要用其他函数等来替代*/
WHEREb.numberBETWEEN1ANDa.priceANDb.type='P'
)
SELECT*FROMgoodsaWHEREEXISTS(.id=a.idANDMAX(aa.px)<=15)

㈧ SQL语句如何实现数据的累加

假设原来的表是t1:

declare @t table ([date] int,sale int,[sum] int)
declare @dt int,@sale int,@sum int
declare @c cursor
set @sum=0
set @c=cursor forward_only read_only for select * from t1 order by dt
open @c
fetch next from @c into @dt,@sale
while @@fetch_status=0
begin
set @sum=@sum+@sale
insert @t values (@dt,@sale,@sum)
fetch next from @c into @dt,@sale
end
close @c
deallocate @c
select * from @t

这是用存储过程实现,至于如何用一条语句实现,我想不出来。

㈨ sql语句怎么进行累某个字段的累加,有条件限制。具体如下:

如果单是SQL来操作的话(个人能力有限,实现不了)
可以通过程序来实现,作个循环,一条条计算输出

㈩ sql累加函数

CreateFunctionfn_lj(@Iint)
Returnsint
As
Begin
Declare@rstint=0
while@I>0
begin
Set@rst=@rst+@I
Set@I=@I-1
end

return@rst
End
/*
比如输入10,得到55
selectdbo.fn_lj(10)
*/