我有2个表,其列如下:
表1
*:after {
content: "\200E";
}
*:before {
content: "\200E";
}
表2
company_name | company_id | update_dt | update_user
我必须比较两个表中company_id列的记录,对于company_name | company_id | location | validation_sw | update_dt | update_user
中Table-2
中与company_ids
匹配的所有记录,我必须更新相应的{{1 Table-1
中的}}为'Y',对于validation_sw
中的所有其他记录,我必须将Table 2
更新为'N'。另外,由于每个Table-2
都映射到不同的validation_sw
列,因此我只需要考虑company_id
中不同的Table-2
列。
我创建了以下查询(未考虑company_id
中不同的location
的问题,但它仍然无法正常工作,因为它将所有记录更新为“ Y”或“ N”,而不仅仅是将将记录与“ Y”匹配,其他与“ N”匹配)
查询:
company_id
请帮助我修改查询,以仅将匹配的Table-2
记录的UPDATE Table-2
SET validation_sw = CASE WHEN validation_sw in (
SELECT validation_sw
FROM Table-2 tb2
INNER JOIN Table-1 tb1
ON tb1.company_id = tb2.company_id
) THEN 'Y'
ELSE 'N'
END;
更新为'Y',而将其他记录的'N'更新为{ {1}}
答案 0 :(得分:0)
代替:
CASE WHEN validation_sw in (
SELECT validation_sw
...
您应该使用Company_id
代替validation_sw
:
CASE WHEN company_id in (
SELECT company_id
...