update B set TotalPrice=Price*Number from B join A on A.BookID=B.BookID

創(chuàng)新互聯(lián)公司是一家專注于成都做網(wǎng)站、成都網(wǎng)站建設(shè)與策劃設(shè)計(jì),東興網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)10余年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:東興等地區(qū)。東興做網(wǎng)站價(jià)格咨詢:18982081108
或
update B set TotalPrice=Price*Number from B , A where A.BookID=B.BookID
sqlserver:
select a*b*c*isnull(d,1) from table
null跟任何值計(jì)算都是null,isnull函數(shù)判斷d列若是null就改為1
根據(jù)題意,你應(yīng)該想讓1表中的A列和2表中的B列的對應(yīng)行相乘,相乘不是問題,所以你的問題主要是在“對應(yīng)行”上,如果你的兩張表都有表示行號的字段,那就很好解決:
select
a.A*b.B
as
乘積
from
table1
as
a,table2
as
b
where
a.ID=b.ID;
如果沒有行號,就必須使用函數(shù)或者子查詢來解決行號的問題,但是你沒有告訴我你用的是哪種數(shù)據(jù)庫,SQL
SERVER
2005以上有ROW_NUMBER()函數(shù)可以解決,ORACLE有ROWNUM字段可以解決,不同的數(shù)據(jù)庫解決行號的辦法不同。這樣吧,我給你個(gè)比較通用的子查詢方法,不用這些特殊的函數(shù):
select
a.A*b.B
as
乘積
from
(select
identity(int,1,1)
as
rownum,*
from
table1)
as
a,
(select
identity(int,1,1)
as
rownum,*
from
table2)
as
b
where
a.rownum=b.rownum
額~~~
晚上看了下我的回答,有點(diǎn)草率了,identity(int,1,1)估計(jì)不能這么用(現(xiàn)在過年,沒
數(shù)據(jù)環(huán)境測試),下面這個(gè)代碼保險(xiǎn)點(diǎn):
alter
table
table1
add
column
ididentity(int,1,1)
alter
table
table2
add
column
id
identity(int,1,1)
select
a.A*b.B
as
乘積
from
table1
as
a,table2
as
b
where
a.id=b.id;
解決方案:
比如說表t,有三個(gè)int型字段xintyintzint要求實(shí)現(xiàn)z=x*y那么,如果是SQLSERVER的話,可以寫一個(gè)Job定時(shí)掃描表t,把x*y的結(jié)果賦值給zJob要做的事情就是:updatetsetz=x*ywherexisnotnullandyisnotnull或者,在表t上建一個(gè)觸發(fā)器,當(dāng)滿足x、y均有值的時(shí)候,把x*y的結(jié)果更新給zaccess不清楚怎么創(chuàng)建Job或者觸發(fā)器你可以寫一個(gè)小程序,定時(shí)執(zhí)行,用這個(gè)小程序去刷表t,更新z的值!
去看一看MSSQL SERVER 的贊助,REAL的定義用于表示浮點(diǎn)數(shù)字?jǐn)?shù)據(jù)的近似數(shù)字?jǐn)?shù)據(jù)類型。浮點(diǎn)數(shù)據(jù)為近似值;并非數(shù)據(jù)類型范圍內(nèi)的所稀有據(jù)都能精確地表示。應(yīng)當(dāng)改成decimal 或 numeric 數(shù)據(jù)類型,修改時(shí)留意小數(shù)精度.
不管是sql語句里還是存儲(chǔ)過程里,沒有什么特別的函數(shù)來作乘法去處,直接用*是可以的,可能還是你的語法哪里沒寫對
名稱欄目:sqlserver相乘,sql 乘積
轉(zhuǎn)載注明:http://chinadenli.net/article43/dsihihs.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)、ChatGPT、網(wǎng)站設(shè)計(jì)、動(dòng)態(tài)網(wǎng)站、建站公司、Google
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)