我有下表:
参数
id, ownerId, paramId, value
1, 500, 100, 12345
2, 500, 100, 54321
3, 500, 101, 900
4, 500, 101, 901
5, 501, 101, 888
6, 501, 101, 777
预期结果:
参数
id, ownerId, paramId, value
1, 500, 100, 900
2, 500, 100, 901
3, 500, 101, 900
4, 500, 101, 901
5, 501, 101, 777
6, 501, 101, 777
我试图用最后两行的值更新第一行的两行值,一般来说,我希望使用101 paramId中的值更新100 paramId中的值,其中我拥有相同的ownerId。
我正在尝试使用以下脚本:
Update Parameters
set value = t1.value
from Parameters t1
where ownerId = t1.ownerId AND paramId = 100 And t1.paramId = 101
此脚本返回(0行(s)受影响)
答案 0 :(得分:0)
你的行有ids 3& 4列ownerId,paramId和value具有相同的数据。您需要按列ID进行过滤以更新行。 类似的东西:
更新参数 set value =(从参数中选择id = 3的值),其中id = 1
更新参数 set value =(从参数中选择id = 4的值),其中id = 2
答案 1 :(得分:-1)
您可能需要澄清为什么应使用记录3中的值更新记录1,并且记录2应使用记录4中的值更新?但这会起作用......
update
p
set
p.value = t.value
from
Parameters p
join
Parameters t
on
t.ownerId = p.ownerId
and t.paramId = 101
where
p.paramId = 100