以下是我的情景:
我有一个包含字段的表:
.constant
有2 PolicyID
MemberType
MemberAddress
MemberCity
个分类:
MemberType
只有MemberType
----------
Owners
Dependents
与地址和城市相关联。因此,当我有一个所有者和几个家庭成员(家属)时,只有所有者行显示一个地址,所以家属行地址字段显示Owners
(旁注:所有者和同一家庭的所有者将具有相同的{{ 1}})。如何填充地址字段,以便在有NULL
地址字段的依赖项时,它将获取其所有者的地址并填充该字段。
当前结果
policyid
期望的结果
NULL
提前谢谢!
答案 0 :(得分:1)
UPDATE t
SET t.MemberAddress = t2.MemberAddress and t.MemberCity=t2.MemberCity
FROM Table1 t
INNER JOIN Table1 t2 ON t.Id = t2.Id
WHERE t2.PolicyID = t.PolicyID AND t.MemberType<>'Owner' AND t.MemberAddress IS NULL
在运行更新检查之前,确保您正在更新正确的数据:
SELECT t.PolicyID, t2.PolicyID, t.MemberType, t2.MemberType, t.MemberAddress, t2.MemberAddress, t.MemberCity, t2.MemberCity
FROM Table1 t
INNER JOIN Table1 t2 ON t.Id = t2.Id
WHERE t2.PolicyID = t.PolicyID AND t.MemberType='Dependents' AND t.MemberAddress IS NULL
答案 1 :(得分:0)
您可以在update
语句中进行简单的加入,如下所示:
UPDATE p1
SET p1.MemberAddress = p2.MemberAddress,
p1.MemberCity = p2.MemberCity
FROM policy p1
INNER JOIN policy p2 ON p1.PolicyID = p2.PolicyID
AND p2.MemberType = 'Owner'
WHERE p1.MemberType <> 'Owner';
select * from policy; --change it to match your tablename