你這SQL是利用UPDATE的執(zhí)行順序來運(yùn)行的

專業(yè)成都網(wǎng)站建設(shè)公司,做排名好的好網(wǎng)站,排在同行前面,為您帶來客戶和效益!創(chuàng)新互聯(lián)建站為您提供成都網(wǎng)站建設(shè),五站合一網(wǎng)站設(shè)計(jì)制作,服務(wù)好的網(wǎng)站設(shè)計(jì)公司,成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站負(fù)責(zé)任的成都網(wǎng)站制作公司!
在UPDATE批量數(shù)據(jù)的時(shí)候,先給變量 @nDiffQty賦值,再根據(jù)數(shù)量層層減nQty的值賦值給原來的nDiffQty。
大概邏輯就是根據(jù)Type非則取總數(shù),否則用原來的總數(shù)來減原列數(shù)量并賦值。感覺這個(gè)邏輯會(huì)因執(zhí)行UPDATE的順序而有差異。
如果轉(zhuǎn)成Oracle的話可以用以下SQL:
----------------------先弄兩個(gè)值
DECLARE
n_DiffQty NUMBER;
s_Type VARCHAR2
(4);
-----------------生成游標(biāo)------------------
CURSOR aa
IS
select id, sType,nSumQty, nQty from #1;
-------------------循環(huán)----------------
FOR
a IN aa
LOOP
IF (a.sType='')
THEN
n_DiffQty:=a.nSumQty;
ELSE
n_DiffQty:=n_DiffQty-a.nQty;
END IF;
Update #1 Set nDiffQty = n_DiffQty where id=a.id;
END LOOP;
update B set TotalPrice=Price*Number from B join A on A.BookID=B.BookID
或
update B set TotalPrice=Price*Number from B , A where A.BookID=B.BookID
將兩條查詢語(yǔ)句作為子查詢的一部分連表.
select t1.count1+t2.count2 as 'countSum',t1.branch
(select count as count1, branch from table1 group by branch)t1
(select count as count2, branch from table2 group by branch)t2 on t1.branch =t2.branch
這種寫法有一個(gè)潛在的限制,t1中的branch 必須包含t2,所以你的需求一般這么寫:
select sum(counts)counts,branch
from(select * from(select count as counts, branch from table1 group by branch)t1
union
select * from(select count as counts, branch from table2 group by branch )t1)t
group by branch
不管是sql語(yǔ)句里還是存儲(chǔ)過程里,沒有什么特別的函數(shù)來作乘法去處,直接用*是可以的,可能還是你的語(yǔ)法哪里沒寫對(duì)
你的time,不一樣。如果去掉重復(fù)的。是time這個(gè)字段不要,還是要哪一條數(shù)據(jù)?
你用的開窗函數(shù),一般都是用來做排序的,去掉重復(fù)的,還是要用分組。
dateadd是一個(gè)用來相加的一個(gè)函數(shù),dd指的是日期里面的日,DATEADD(dd,
DATEDIFF(dd,0,getdate()),
0)
意思是將DATEDIFF(dd,0,getdate())函數(shù)返回的日期增加0天,如果將0改成1,DATEADD(dd,
DATEDIFF(dd,0,getdate()),
1)那就是加一天
DATEDIFF函數(shù)返回的是兩個(gè)日期之間的間隔,dd就是間隔多少天。
文章標(biāo)題:sqlserver運(yùn)算,sqlserver運(yùn)算函數(shù)
文章URL:http://chinadenli.net/article1/dsgieod.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、、網(wǎng)站策劃、移動(dòng)網(wǎng)站建設(shè)、品牌網(wǎng)站設(shè)計(jì)、營(yíng)銷型網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)