차이점을 찾고 "새로 만들기"와 같은 열에 결과를 표시하려면 두 테이블 (생산 데이터로 표 A, 이전 데이터로 B) 사이의 전자 메일 레코드 (전자 메일 주소로) 표 B에있는 경우 표 A에있는 경우,SQL에서 두 테이블 사이의 차이 찾기
을 "삭제"등이 아닌 표 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
)
하지만 코드가 을 "삭제"한다 기록을 반환하지로 데이터 정확하지 (하지 표 A에, 표 B에서 발견)
pls. 감사.
두 데이터베이스 (또는 두 데이터베이스에서 두 개 이상의 테이블)를 동기화하려고하는 것 같습니다. – jpmc26