我需要使用同一个表更新字段。在下面的示例中,在Co 1中将RewRate设置正确,然后我需要根据EDL类型,EDL代码更新Co 4,10和16的NewRate。感谢
这段代码显然是错误的,但我只是不知道如何修复它。遗憾
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
答案 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。