현재 scd 유형 2 데이터를 차원에로드하는 쿼리의 마지막 부분을 완료하려고합니다. 아래에 제공된 데이터를 기반으로, 만료 된 오래된 레코드 및 추적 기록 등의 차원에 삽입 할 수있는 출력을 생성하고 싶습니다. 데이터는 특성이 변경된 최신 레코드를 보유하고 있습니다. 변경된 값은 조회 열과 함께 및 날짜 변경, 즉 변경이 발생한 날짜에서 찾을 수 있습니다. 이 dateOfchange는 분명히 최신 레코드의 validTo 날짜가되어야합니다. 이 데이터와SCD 유형 2에 대한 T-SQL 구문
CREATE TABLE #tstDimPortfolio
(
[ID][INT] IDENTITY (1,1) NOT NULL,
[UPI] [varchar](20) NOT NULL,
[MF_CODE] [varchar](10) NULL,
[BH_Code] [varchar](10) NULL,
[CR_Code] [varchar](10) NULL,
[ValidFrom][varchar](10) NOT NULL,
[ValidTo][varchar](10) NULL,
[IsCurrent] [CHAR] (1) NULL,
[DateofChange] [varchar](10) NULL,
[LookupMF_CODE] [varchar](10) NULL,
[LookupBH_Code] [varchar](10) NULL,
[LookupCR_Code] [varchar](10) NULL,
)
INSERT INTO #tstDimPortfolio
SELECT 'B06531','B06531','','B06531','20111230',NULL,'Y','20120101','','B06531', ''
UNION ALL
SELECT 'BLI003','','BLI003','BBL_WORLD','20111230',NULL,'Y','20120102','BLI004','', ''UNION ALL
SELECT 'BLI003','','BLI003','BBL_WORLD','20111230',NULL,'Y','20120103','BLI005','', ''UNION ALL
SELECT 'BLI027','BLI027','L147','BBL_GBN','20111230',NULL,'Y','20120104','','L146', ''
새로운 출력
UPI MF_CODE BH_Code CR_Code ValidFrom ValidTo IsCurrent
_______________________________________________________________________
B06531 B06531 B06531 20111230 20120101 N
B06531 B06531 B06531 B06531 20120101 NULL Y
BLI003 BLI003 BBL_WORLD 20111230 20120102 N
BLI003 BLI004 BLI003 BBL_WORLD 20120102 20120103 N
BLI003 BLI005 BLI003 BBL_WORLD 20120103 NULL Y
BLI027 BLI027 L147 BBL_GBN 20111230 20120104 N
BLI027 BLI027 L146 BBL_GBN 20120104 NULL Y
아이디어
@Mitch 밀 FROM #temp INTO . 우리가 ssis를 가지고 있지 않은 순간, 저장 프로 시저를 통해 수행 한 것처럼. 다음과 같이 테이블 자체에 조인 해 보았습니다. –
@Mitch Wheat 우선 t-sql에서 수행해야합니다. 우리가 ssis를 가지고 있지 않은 순간, 저장 프로 시저를 통해 수행 한 것처럼. upi 및 dateOfchange
내가 "당신은 무엇을 시도 했습니까?"라고 말했을 때 나는 이미 당신이 쓴 것을 보여 주었다 ..... –