Mapping | Beskrivelse | Loadtype |
---|---|---|
DSA_P12XXX_Civilstande_EDW_PersonCivilstand | Indlæsning af hvilke civilstande en person har haft. |
Beskrivelse | Expression |
---|---|
/* Slet (prune) rækker i PersonCivilstand som har FraDato >= Tidligste HAENSTART_CIVILSTAND i data som skal indlæses*/ DELETE pc FROM $$EDW_DATABASE.dbo.PersonCivilstand pc inner hash join $$EDW_DATABASE.maps.Person p on p.SYS_BusinessKeyID=pc.FK_Person_BK_Person inner hash join ( SELECT RN = ROW_NUMBER() OVER (PARTITION BY PNR ORDER BY SYS_ExtractDate DESC, HAENSLUT_CIVILSTAND_TRUNC DESC, SYS_RowID DESC) , PNR, HAENSTART_CIVILSTAND_TRUNC, SYS_ExtractDate, sys_batchdate FROM $$DSA_DATABASE.dbo.DSA_P12XXX_Civilstande ) DSA_PersonCivilstand ON p.Personnummer=DSA_PersonCivilstand.PNR WHERE DSA_PersonCivilstand.RN = 1 AND pc.FraDato >= DSA_PersonCivilstand.HAENSTART_CIVILSTAND_TRUNC AND DSA_PersonCivilstand.sys_batchdate = @batchdate ; /* Opdater PersonCivilstand.TilDato, hvis den ligger efter ny HAENSTART_CIVILSTAND*/ UPDATE pc SET pc.TilDato=DSA_PersonCivilstand.HAENSTART_CIVILSTAND_TRUNC FROM $$EDW_DATABASE.dbo.PersonCivilstand pc inner join $$EDW_DATABASE.maps.Person p on p.SYS_BusinessKeyID=pc.FK_Person_BK_Person inner join ( select FK_Person_BK_Person, MAX(TilDato) MaxTilDato FROM $$EDW_DATABASE.dbo.PersonCivilstand group by FK_Person_BK_Person ) PcMaxTilDato on PcMaxTilDato.FK_Person_BK_Person=pc.FK_Person_BK_Person and PcMaxTilDato.MaxTilDato=pc.TilDato inner join ( SELECT RN = ROW_NUMBER() OVER (PARTITION BY PNR ORDER BY SYS_ExtractDate DESC, HAENSLUT_CIVILSTAND_TRUNC DESC, SYS_RowID DESC) , PNR, HAENSTART_CIVILSTAND_TRUNC, SYS_ExtractDate, sys_batchdate FROM $$DSA_DATABASE.dbo.DSA_P12XXX_Civilstande ) DSA_PersonCivilstand ON DSA_PersonCivilstand.PNR=p.Personnummer and DSA_PersonCivilstand.HAENSTART_CIVILSTAND_TRUNC <= PcMaxTilDato.MaxTilDato WHERE DSA_PersonCivilstand.RN = 1 AND DSA_PersonCivilstand.sys_batchdate = @batchdate ; |
Kildelag | Primær kilde tabel | FilterExpression på primær kildetabel | Destinationslag | Primær destinations tabel |
---|---|---|---|---|
DSA | dbo.DSA_P12XXX_Civilstande | EDW | dbo.PersonCivilstand |
Kildelag | Kildetabel | Expression | Kolonne | Join type | Operator | Kildelag | Kildetabel | Expression | Kolonne | Order |
---|---|---|---|---|---|---|---|---|---|---|
DSA | dbo.DSA_P12XXX_Civilstande | PNR | Lookup | = | EDW | dbo.Person | Personnummer | 1 | ||
DSA | dbo.DSA_P12XXX_Civilstande | CIVST | Lookup | = | EDW | dbo.Civilstand | Civilstandkode | 2 |
Kildelag | Kildetabel | Kolonne | Forretningsregel | Destinationslag | Destinationstabel | Kolonne |
---|---|---|---|---|---|---|
EDW | dbo.Civilstand | CivilstandID | EDW | dbo.PersonCivilstand | FK_Civilstand_ID_Civilstand | |
EDW | dbo.Person | SYS_BusinessKeyFK | EDW | dbo.PersonCivilstand | FK_Person_BK_Person | |
DSA | dbo.DSA_P12XXX_Civilstande | HAENSTART_CIVILSTAND_TRUNC | EDW | dbo.PersonCivilstand | FraDato | |
DSA | dbo.DSA_P12XXX_Civilstande | HAENSLUT_CIVILSTAND_TRUNC | EDW | dbo.PersonCivilstand | TilDato |
Beskrivelse | Expression |
---|---|
/* /* Udkommenteret da vi ikke anvender PostUpdateLog på nuværende tidspunkt, og det koster i indlæsnigen. XMK 20171222*/ INSERT INTO $$EDW_DATABASE.dbo.PersonCivilstand_PostUpdateLog ( [Beskrivelse] ,[Dato_For_Opdatering] ,[PersonCivilstandID_OpdateringsKilde] ,[FK_Civilstand_ID_Civilstand_OpdateringsKilde] ,[FraDato_OpdateringsKilde] ,[TilDato_OpdateringsKilde] ,[FK_Person_BK_Person_OpdateringsKilde] ,[SYS_KommuneId_OpdateringsKilde] ,[SYS_BatchDate_OpdateringsKilde] ,[SYS_RowID_OpdateringsKilde] ,[SYS_ExtractDate_OpdateringsKilde] ,[SYS_SourceFileID_OpdateringsKilde] ,[SYS_SourceSharedTableId_OpdateringsKilde] ,[PersonCivilstandID_OpdateringsMål] ,[FK_Civilstand_ID_Civilstand_OpdateringsMål] ,[FraDato_OpdateringsMål] ,[TilDato_OpdateringsMål] ,[FK_Person_BK_Person_OpdateringsMål] ,[SYS_KommuneId_OpdateringsMål] ,[SYS_BatchDate_OpdateringsMål] ,[SYS_RowID_OpdateringsMål] ,[SYS_ExtractDate_OpdateringsMål] ,[SYS_SourceFileID_OpdateringsMål] ,[SYS_SourceSharedTableId_OpdateringsMål] ) select 'Periode overlap i PersonCivilstand. TilDato i OpdateringsMål sættes til FraDato fra OpdateringsKilde.' AS Beskrivelse ,GetDate() as Dato_For_Opdatering ,pb.[PersonCivilstandID] ,pb.[FK_Civilstand_ID_Civilstand] ,pb.[FraDato] ,pb.[TilDato] ,pb.[FK_Person_BK_Person] ,pb.[SYS_KommuneId] ,pb.[SYS_BatchDate] ,pb.[SYS_RowID] ,pb.[SYS_ExtractDate] ,pb.[SYS_SourceFileID] ,pb.[SYS_SourceSharedTableId] ,pb2.[PersonCivilstandID] ,pb2.[FK_Civilstand_ID_Civilstand] ,pb2.[FraDato] ,pb2.[TilDato] ,pb2.[FK_Person_BK_Person] ,pb2.[SYS_KommuneId] ,pb2.[SYS_BatchDate] ,pb2.[SYS_RowID] ,pb2.[SYS_ExtractDate] ,pb2.[SYS_SourceFileID] ,pb2.[SYS_SourceSharedTableId] from $$EDW_DATABASE.dbo.PersonCivilstand pb inner hash join $$EDW_DATABASE.dbo.PersonCivilstand pb2 on pb2.fk_person_bk_person=pb.fk_person_bk_person AND pb.PersonCivilstandID <> pb2.PersonCivilstandID where ( pb.TilDato > pb2.FraDato and pb.FraDato < pb2.FraDato ) AND ISNULL(pb.FK_Person_BK_Person, -1) <> -1 AND ISNULL(pb2.FK_Person_BK_Person, -1) <> -1 ; */ UPDATE pb SET [TilDato] = pb2.[FraDato] from $$EDW_DATABASE.dbo.PersonCivilstand pb inner hash join $$EDW_DATABASE.dbo.PersonCivilstand pb2 on pb2.fk_person_bk_person=pb.fk_person_bk_person AND pb.PersonCivilstandID <> pb2.PersonCivilstandID where ( pb.TilDato > pb2.FraDato and pb.FraDato < pb2.FraDato ) AND ISNULL(pb.FK_Person_BK_Person, -1) <> -1 AND ISNULL(pb2.FK_Person_BK_Person, -1) <> -1 ; |