여기 상황이 있습니다. 사람들의 정보가 들어있는 테이블이 있습니다. 일부는 다른 시스템에서 가져오고 일부는 수동으로 가져옵니다. 내가하고 싶은 것은 모두를 끌어들이는 것이지만 수동으로 입력 한 레코드와 가져온 레코드가있는 경우 가져온 레코드 만 선택하려고합니다 (최신 상태 일 가능성이 높기 때문에). 여기 SQL Server 제외
는 내가 지금까지 무엇을 가지고 있지만, (그것은 단지 수동으로 입력 레코드를 반환) 작동하지 않습니다SELECT --fields go here
FROM
(
SELECT PERSON_UID, instype
FROM AdmitsInterfaceTable
WHERE instype='M' --Manually entered people
EXCEPT
SELECT PERSON_UID, instype
FROM AdmitsInterfaceTable
WHERE instype='I' --Imported people
) P,
AdmitsInterfaceTable A
WHERE
P.PERSON_UID=A.PERSON_UID
AND P.instype=A.instype
을 나는이 때문에 내부의 작동하지 않는 느낌이 또한 instype 열을 가져 오는 쿼리가 있지만이를 수행하는 더 나은 방법을 생각할 수 없습니다. 어떤 충고?
레코드가 수동으로 첨가하고 하나가 가져 오기에서 추가 된 경우 첫째, 그들은 같은 person_uid있을 것입니다? 그렇다면 가져 오기에서 레코드를 추가하는 대신 왜 레코드를 업데이트하지 않는 것입니까? 왜 의도적으로 복제물을 만드는거야? 또한 ANSI 표준 조인을 사용하십시오. 조인 구문의 유효 기간은 17 년입니다. – HLGEM
데이터는 실제로 다른 곳에서 지속적으로 보관됩니다. 벤더 시스템이 액세스 할 수있는 임시 스테이징 포인트로 테이블을 가져 와서 어떤 레코드를 업데이트 및/또는 삽입해야하는지 결정합니다. 예, 준비 영역의 레코드를 업데이트 할 수 있지만 가져온 레코드를 매일 제거한 다음 다시 가져 오는 것이 더 쉽습니다. 수동으로 입력하는 경우는 거의 없지만 신중하게 처리하지 않으면 문제가 발생할 수 있습니다. –
제안 된 솔루션 중 어떤 것이 도움이됩니까? –