當前位置:首頁 » 編程語言 » 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)
*/