我似乎无法理解这样的情况:您有一个表,其中的ID多次针对不同的FAM_TYPES列出,如下例所示。基本上,我想更新VALID_TO列以匹配所有FAM_TYPE的VALID_FROM列,但仅当FAM_TYPE为ACT且该IDENT的关联FAM_VALUE为1时。我尝试使用WHERE语句,但最终只更新了FAM_TYPE为ACT的行。
IDENT FAM_TYPE FAM_VALUE VALID_FROM VALID_TO
61593 ACT 1 13/11/2017 12/01/2018
61593 LSF 1 13/11/2017 12/01/2018
61593 ACT 1 13/11/2017 22/12/2017
61593 ACT 1 13/11/2017 22/12/2017
答案 0 :(得分:2)
可以使用IN和ADS中的sub-SELECT测试存在性。
您可能想要这样的东西:
UPDATE
table
SET
valid_to = valid_from
WHERE
ident IN (SELECT ident from table WHERE fam_type = 'ACT' AND fam_value = 1)