2010-11-30 5 views
0

에 기반하여 문제의 해결책을 찾는 데 도움이 필요합니다. 한 테이블의 데이터를 다른 테이블로 옮기기 조건

1.

나는

ClientAccountDetails이 데이터를 특정 클라이언트 (즉, 여러 계정에 관련된 포함, 4 개 테이블

a. CLientdetails 
b. ClientAccountDetails 
c. ClientExistingData 
d. ClientNotExistindata. 

의 Network mode 자세한 내용은 클라이언트, STARTINGDATE의 이름에 관련된 데이터를 포함 endingDate이 계정 이름, 계좌 상태, 금액 등)

SSIS 패키지를 사용하여 Excel 시트 (Excel 시트와 관련된 데이터는 ClientAccountDetails)에서 IMPORTClientDetails라는 다른 테이블.

모든 데이터가 ssis 패키지를 사용하여 테이블로 가져올 때. 클라이언트의 이름을 기반으로 ClientAccountDetails 테이블로 이동할 쿼리를 작성합니다.

2. 내 질문 IMPORTClientDetails에서 클라이언트 이름은 다음 내가 원하는 존재하는 경우 IMPORTClientDetails에서 클라이언트 이름 난 데이터가 ClientNotExistindata

로 이동하려는 ClientDetails 테이블에 존재 doesnot 경우

입니다 이를 ClientAccountDetails로 이동하십시오.

답변

1

두 개의 간단한 INSERT/SELECT 문을 사용하여 수행 할 수 있습니다. 일치가없는 경우, 그들은 ClientNotExistindata로 보낼 수 있습니다 -

INSERT INTO ClientAccountDetails(COLUMN1,COLUMN2, ETC) 
SELECT COLUMN3,COLUMN4, ETC 
FROM IMPORTClientDetails ICD 
WHERE ICD.Client IN (SELECT Client FROM ClientDetails); 

INSERT INTO ClientNotExistindata(COLUMN1,COLUMN2, ETC) 
SELECT COLUMN3,COLUMN4, ETC 
FROM IMPORTClientDetails ICD 
WHERE ICD.Client NOT IN (SELECT Client FROM ClientDetails); 
+0

내가 ClientDetails에 2 행의 데이터가 있고 IMPORTClientDetails에 20 행이 있으면 ClientAccountDetails의 데이터가 40 행이되는 반면 이름이 그보다 작 으면 20이어야합니다. – Sravanthi

+0

이해할 수 없기 때문에 작동하지 않습니다. 당신이 묘사하고있는 문제. 유일한 기록 일 필요가 있습니까? 아마도 몇 가지 샘플 데이터를 만들어 질문과 함께 게시 할 수 있습니다. – John

+0

나는이 대답이 당신이 원하는 것이라고 확신한다. IN() 함수는 True 또는 False로 평가되므로 행은 한 번만 삽입됩니다. 나는 당신이 조인과 혼란스러워하고 있다고 생각합니다. – John

1

은 SSIS에서는 IMPORTClientDetails에서 가져온 CLIENTNAME 행을 ClientDetails에 존재하는지 확인하기 위해 조회 작업을 사용할 수 있습니다. 일치하는 행을 ClientAccountDetails로 보낼 수 있습니다.

+0

SSIS를 사용하여 데이터를 가져오고 있으므로 사용할 수있는 모든 기능을 사용할 수도 있습니다. – Tony

관련 문제