我有一个表需要更新为 Y 的值,但此更新是基于其他表的一些结果,我不知道如何执行此操作。
基本上,我需要完成以下检查
- 我需要从需要更新的表中检查另一个表是否有 19 个匹配的行
- 在那些字段之一不为空的匹配行中
- 我还有另外两个表,我需要检查后一个表中是否存在记录,并确保后者中的匹配记录不包含其中一个字段中的“Y”值。
我的方法是使用 UNION,但我希望有人建议我这种方法是否正确,或者是否有更好的方法:
SELECT '1'
FROM t_A_Outbound
Where NOT HEADER IN (Select HEADER FROM t_B_Outbound)
UNION
SELECT '1'
FROM t_A_Outbound
Where HEADER IN (Select HEADER FROM t_B_Outbound
WHERE NOT INCOMPLETE ='Y')
UNION
Select '1'
From t_C_Outbound
Where ValueString = ''
UNION
Select '1'
From t_C_Outbound
WHERE Exists(Select Count(key), HEADER
From t_C_Outbound IN (SELECT HEADER FROM table_that_needs_updating)
Group By HEADER
Having NOT Count(Cast(key as Int)) = 19)
我想用 1 作为标志来说明这个值是否回来更新我需要更改的表中的字段。
谁能给我建议?