고객이 우리에게 제공 한 정보를 기반으로 데이터베이스 목록에있는 의사 목록과 일치하는 저장 프로 시저를 작성하려고합니다. 현재 우리는 주어진 식별자를 기반으로 수동으로 MS Access를 사용하지만,이 프로세스는 지루하고 시간이 오래 걸리기 때문에 자동화를 원합니다.제공된 필드만을 사용하는 T-SQL 일치 프로세스
잠재적으로 일치시킬 수있는 모든 열을 포함하는 임시 테이블을 만든 다음 필드를 조인 조건으로 사용하여 일련의 일치하는 쿼리를 실행하여 식별자를 다시 전달합니다. 문제는 거기에 대한 15 가지 식별자가 잠재적으로있을 수 있다는 사실에있다
UPDATE Temp
SET Temp.RECID = Phy.RECID
FROM TempTable Temp
INNER JOIN Physicians Phy
ON Phy.Name = Temp.Name
AND Phy.NPI = Temp.NPI
AND Phy.MedicaidNum = Temp.MedicaidNum
AND Phy.DOB = Temp.DOB
UPDATE Temp
SET Temp.RECID = Phy.RECID
FROM TempTable Temp
INNER JOIN Physicians Phy
ON Phy.Name = Temp.Name
AND Phy.NPI = Temp.NPI
AND Phy.MedicaidNum = Temp.MedicaidNum
WHERE Temp.RECID IS NULL
...etc
:
는 예를 들어, 사용 가능한 일치하는 필드 이름, NPI, MedicaidNum 및 DOB 그래서 다음처럼 작성할 수 있습니다 제공되며 클라이언트는 보통 레코드 세트당 3 ~ 4 개만 제공합니다. 따라서 Null 값이 고려 될 때까지, 제공되는 필드가 6 개 밖에없는 경우 수백 개의 쿼리가 작성되어 일치해야합니다.
실제로 데이터 세트에 제공된 열을 나타내는 변수 (또는 변수)를 전달한 다음 동적 결합 문 및/또는 where 절을 작성하는 방법이있을 수 있다고 생각하지만, 이것이 T-SQL에서 작동하는지 알 수 없습니다. 내가 쓸 필요가 쿼리의 수를 제한, 만 오히려 나는이 일치하고 필드, 특정 사람의 수에 대해 걱정할 필요가
DECLARE @Field1
DECLARE @Field2
....
UPDATE Temp
SET Temp.RECID = Phy.RECID
FROM TempTable Temp
INNER JOIN Physicians Phy
ON [email protected] = [email protected]
AND [email protected] = [email protected]
이 방법 :처럼 뭔가. 아마도이 문제에 대한 더 나은 접근 방법이 있을까요?