如何更新同一个表中的字段

时间:2014-02-03 17:25:05

标签: sql sql-update

我需要使用同一个表更新字段。在下面的示例中,在Co 1中将RewRate设置正确,然后我需要根据EDL类型,EDL代码更新Co 4,10和16的NewRate。感谢

enter image description here

这段代码显然是错误的,但我只是不知道如何修复它。遗憾

  UPDATE       PRCI
   SET   NewRate = (select NewRate from PRCI  where PRCI.PRCo=1 and Craft ='xxx')

很抱歉让人困惑。我需要更新 EDL Code300 NewRate 0.05, EDL Code700 NewRate 5.3 EDL Code701 NewRate 3.7 EDL Code707 NewRate 0.78 EDL Code714 NewRate 3

对于公司4 10和16

3 个答案:

答案 0 :(得分:2)

你去。

UPDATE t1 
SET t1.NewRate=t2.NewRate
FROM PRCI t1 
INNER JOIN PRCI t2
ON t1.EDLType=t2.EDLType
AND t1.EDLCode=t2.EDLCode
WHERE t1.PRCo!='1';

答案 1 :(得分:0)

您可以更改

and Craft ='xxx'

and EDLCode = 714.

如评论中所述,where子句可能是合适的。

答案 2 :(得分:0)

你的目标是什么?目前尚不清楚......请详细描述一下这个任务。

您的sql错误,因为子选择返回多个结果,但只需要单个结果...您可以使用游标创建存储过程或匿名块。使光标选择区分的PRCo,Craft,EDL Type,EDL Code。然后获取键值并使用计算值4更新每个获取键的NewRate。

相关问题