0
我需要比较两个表(表A作为生产数据和B作为旧数据)之间的电子邮件记录(通过电子邮件地址)以找到差异并在列中显示结果,例如“新建” ,“删除”等SQL查找两个表之间的差异
如果在表A中存在,而不是在表B,它应该存在,如果表B标记“新”
别人,而不是在表A,它应当标注“删除”
如果出现在两个表中,应该注明“维持”
我想这样
DisplayName LastName Diremail Result
==============================================
XXX XXX [email protected] New
ABC ABC [email protected] Delete
DDD DDD [email protected] Maintain
我的代码,结果如下:
SELECT b.DisplayName,
b.LastName,
b.diremail,
Result = CASE WHEN a.DirEmail IS NULL THEN 'New'
when b.DirEmail IS null then 'delete'
else 'Maintain'
END
FROM vHRIS_StaffDB b
LEFT JOIN HRIS_DL_Lists a
ON a.DirEmail = b.DirEmail
WHERE (
a.DirEmail IS NULL
OR a.DisplayName != b.DisplayName
)
,但数据不正确的代码不会返回记录应“删除” (表B中发现的,而不是在表)
请注意。谢谢。
听起来就像你试图同步两个数据库(或两个数据库中最少两个表)。 – jpmc26