有两张表A和B,结构如下:
A表:
Id Score ActualScore
1 90
2 80
3 60
B表
Id Rate
1 0.9
2 0.8
3 0.7
A表与B表的数据是一一对应的,A表中的ActualScore=A表的Score*B表的Rate
现在要计算A表的ActualScore,SQL语句要怎么写???
试试下面的代码可行
update A set ActualScore=T.Score*T.Rate from
(A join B on A.Id=B.Id as T)
where A.Id=T.Id
update A set ActualScore=Score*(select Rate from B where A.ID=B.ID)
前面两位的都可以实现。那我再提供一个merge 的吧
MERGE INTO A
USING (select Id,Rate
from
B) B
ON ( A.Id=B.Id )
WHEN MATCHED THEN
UPDATE SET (A.ActualScore) = (B.Rate*A.Score )
;