-- Proces tid 3:12 (alle kvartaler 20150101 til 20210401 DECLARE @DimTid_seneste INT; SET @DimTid_seneste = 20210401; DECLARE @count INT; DECLARE @forste INT; DECLARE @statKortId INT; DECLARE @niveau NVARCHAR(50); DECLARE @niveauName NVARCHAR(50); DECLARE @nytNiveau NVARCHAR(50); DECLARE @analyse NVARCHAR(50); DECLARE @gruppe NVARCHAR(50); DECLARE @ialt INT; DECLARE @ialtIkkeVestlig INT; DECLARE @ialt1864 INT; DECLARE @ialtIkkeVestlig1864 INT; DECLARE @analyseNavn NVARCHAR(50); -- DELETE FROM LOISStatistik2.dbo.KL_monitorering DELETE FROM LOISStatistik2.dbo.KL_monitorering Where KL_analyse='Alle indb' -- SET @count = 20200101; -- SET @count = 20210401; SET @count = 20150101 -- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -- Dette er yderste loop som løber igennem alle dimTid xxxxxxxxxxxxxxx -- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx WHILE @count <= @DimTid_seneste BEGIN PRINT N'Count=' PRINT @count DECLARE @Min int -- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -- For hver StatKortId beregnes data for alle områder -- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx SET @forste = 1 SELECT distinct(StatKortId),NiveauNavn INTO #Temp99 FROM [LOISStatistik2].[dbo].[KL_monitorering_Statkort] ORDER BY StatKortId SELECT * FROM #Temp99 ORDER BY StatKortId SELECT @statKortId=min(StatKortId) FROM #Temp99 WHILE @statKortId IS NOT NULL BEGIN PRINT N'*************************************************************************' PRINT N'StatkortId=' PRINT @statKortId -- SET @nytNiveau = CONCAT('_',@statKortId) SET @nytNiveau = ('_'+CAST(@statKortId AS VARCHAR)) -- NB: MS SQL 2008 kan ikke benytte CONCAT -- CONCAT(G.GeometriName,@nytNiveau) -> (CAST(G.GeometriName AS VARCHAR)+CAST(@nytNiveau AS VARCHAR)) -- CONCAT(P.DimTidID,'Overblik') -> (CAST(P.DimTidID AS VARCHAR)+'Overblik') -- CONCAT(KL_NiveauNavn,@nytNiveau) -> (CAST(KL_NiveauNavn AS VARCHAR)+CAST(@nytNiveau AS VARCHAR)) -- CONCAT(NiveauNavn,@nytNiveau) -> (CAST(NiveauNavn AS VARCHAR)+CAST(@nytNiveau AS VARCHAR)) -- CONCAT(P.DimTidID,'-') -> (CAST(P.DimTidID AS VARCHAR)+'-') PRINT N'nytNiveau='+@nytNiveau SET @niveau =(SELECT TOP(1) TabelNavn FROM [LOISStatistik2].[LOISstatistikSystem].[StatistikKort] WHERE StatKortID=@StatKortId); PRINT N'Niveau='+@niveau ------ Indbygger------------------------------------------------------- SET @analyse = 'Alle indb'; SET @gruppe = 'Alle'; PRINT N'Analyse='+@analyse PRINT N'Gruppe='+@gruppe -- ved forste=1 beregne data for hele kommunen (der beregnes samlet befolkning som efterfølgende bruges bed beregning af andel af kommunens indbyggere for de enkelte delområder) IF @forste=1 BEGIN PRINT N'Forste=1 **************************************************' SET @niveauName=(SELECT TOP (1) GeometriName from [LOISStatistik2].[LOISstatistikSystem].[DimGeometri] WHERE StatKortId=@statKortId ORDER BY DimGeometriId); PRINT N'NiveauName='+@niveauName INSERT INTO LOISStatistik2.dbo.KL_monitorering (KL_dimTid, KL_analyse, KL_analyseNavn, KL_Niveau, KL_NiveauNavn, Map_ID, ID, KL_gruppe, antal, ikkeVestlige, pct, pct_ikkeVestlige) SELECT P.DimTidID, @analyse, '-', @niveau, G.GeometriName, (CAST(G.GeometriName AS VARCHAR)+CAST(@nytNiveau AS VARCHAR)), (CAST(P.DimTidID AS VARCHAR)+'Overblik'), @gruppe, Count(P.PNR), COUNT(CASE H.Statsborgerret WHEN 'IKKEVESTLIG' THEN 1 ELSE NULL END), '100', '100' FROM LOISStatistik2.LOISstatistikSystem.DimOverlay AS O INNER JOIN LOISStatistik2.LOISstatistikSystem.DimGeometri AS G ON G.DimGeometriId = O.DimGeometriId INNER JOIN LOISStatistik2.CPR.Kom_Personer_basis AS P ON P.DimPunktId = O.DimPunktId INNER JOIN LOISStatistik2.dbo.KL_Statsborger_Foraldre AS H ON H.PNR = P.PNR WHERE G.StatKortId=@statKortId AND P.DimTidID=@count GROUP BY P.DimTidID, G.GeometriName SET @ialt=(SELECT TOP(1) antal FROM LOISStatistik2.dbo.KL_monitorering WHERE KL_dimTid=@count AND KL_NiveauNavn=@niveauName AND KL_gruppe=@gruppe AND KL_analyse=@analyse AND MAP_ID=(CAST(KL_NiveauNavn AS VARCHAR)+CAST(@nytNiveau AS VARCHAR))); SET @ialtIkkeVestlig=(SELECT TOP(1) ikkeVestlige FROM LOISStatistik2.dbo.KL_monitorering WHERE KL_dimTid=@count AND KL_NiveauNavn=@niveauName AND KL_gruppe=@gruppe AND KL_analyse=@analyse AND MAP_ID=(CAST(KL_NiveauNavn AS VARCHAR)+CAST(@nytNiveau AS VARCHAR))) PRINT N'Ialt=' PRINT @ialt PRINT N'IaltIkkeVestlig=' PRINT @ialtIkkeVestlig -- ------------------------------------------- SET @gruppe = '18-64 årige'; PRINT N'Gruppe2='+@gruppe INSERT INTO LOISStatistik2.dbo.KL_monitorering (KL_dimTid, KL_analyse, KL_analyseNavn, KL_Niveau, KL_NiveauNavn, Map_ID, ID, KL_gruppe, antal, ikkeVestlige, pct, pct_ikkeVestlige) SELECT P.DimTidID, @analyse, '-', @niveau, G.GeometriName, (CAST(G.GeometriName AS VARCHAR)+CAST(@nytNiveau AS VARCHAR)), (CAST(P.DimTidID AS VARCHAR)+'Overblik'), @gruppe, Count(P.PNR), COUNT(CASE H.Statsborgerret WHEN 'IKKEVESTLIG' THEN 1 ELSE NULL END), CAST((100.0*Count(P.PNR)/@ialt) AS DECIMAL(10,2)), CAST((100.0*Count(CASE H.Statsborgerret WHEN 'IKKEVESTLIG' THEN 1 ELSE NULL END)/@ialtIkkeVestlig) AS DECIMAL(10,2)) FROM LOISStatistik2.LOISstatistikSystem.DimOverlay AS O INNER JOIN LOISStatistik2.LOISstatistikSystem.DimGeometri AS G ON G.DimGeometriId = O.DimGeometriId INNER JOIN LOISStatistik2.CPR.Kom_Personer_basis AS P ON P.DimPunktId = O.DimPunktId INNER JOIN LOISStatistik2.dbo.KL_Statsborger_Foraldre AS H ON H.PNR = P.PNR WHERE G.StatKortId=@statKortId AND P.DimTidID=@count AND P.alder>17 AND P.alder<65 GROUP BY P.DimTidID, G.GeometriName SET @ialt1864=(SELECT TOP(1) antal FROM LOISStatistik2.dbo.KL_monitorering WHERE KL_dimTid=@count AND KL_NiveauNavn=@niveauName AND KL_gruppe=@gruppe AND KL_analyse=@analyse AND MAP_ID=(CAST(KL_NiveauNavn AS VARCHAR)+CAST(@nytNiveau AS VARCHAR))); SET @ialtIkkeVestlig1864=(SELECT TOP(1) ikkeVestlige FROM LOISStatistik2.dbo.KL_monitorering WHERE KL_dimTid=@count AND KL_NiveauNavn=@niveauName AND KL_gruppe=@gruppe AND KL_analyse=@analyse AND MAP_ID=(CAST(KL_NiveauNavn AS VARCHAR)+CAST(@nytNiveau AS VARCHAR))) PRINT N'Ialt1864=' PRINT @ialt1864 PRINT N'IaltIkkeVestlig1864' PRINT @ialtIkkeVestlig1864 END ELSE BEGIN PRINT N'Forste=0 **************************************************' INSERT INTO LOISStatistik2.dbo.KL_monitorering (KL_dimTid, KL_analyse, KL_analyseNavn, KL_Niveau, KL_NiveauNavn, Map_ID, ID, KL_gruppe, antal, ikkeVestlige, pct, pct_ikkeVestlige) SELECT P.DimTidID, @analyse, '-', @niveau, G.GeometriName, (CAST(G.GeometriName AS VARCHAR)+CAST(@nytNiveau AS VARCHAR)), (CAST(P.DimTidID AS VARCHAR)+'Overblik'), @gruppe, Count(P.PNR), COUNT(CASE H.Statsborgerret WHEN 'IKKEVESTLIG' THEN 1 ELSE NULL END), CAST((100.0*Count(P.PNR)/@ialt) AS DECIMAL(10,2)), CAST((100.0*Count(CASE H.Statsborgerret WHEN 'IKKEVESTLIG' THEN 1 ELSE NULL END)/@ialtIkkeVestlig) AS DECIMAL(10,2)) FROM LOISStatistik2.LOISstatistikSystem.DimOverlay AS O INNER JOIN LOISStatistik2.LOISstatistikSystem.DimGeometri AS G ON G.DimGeometriId = O.DimGeometriId INNER JOIN LOISStatistik2.CPR.Kom_Personer_basis AS P ON P.DimPunktId = O.DimPunktId INNER JOIN LOISStatistik2.dbo.KL_Statsborger_Foraldre AS H ON H.PNR = P.PNR WHERE G.StatKortId=@statKortId AND P.DimTidID=@count GROUP BY P.DimTidID, G.GeometriName -- ------------------------------------------- SET @gruppe = '18-64 årige'; PRINT N'Gruppe2='+@gruppe INSERT INTO LOISStatistik2.dbo.KL_monitorering (KL_dimTid, KL_analyse, KL_analyseNavn, KL_Niveau, KL_NiveauNavn, Map_ID, ID, KL_gruppe, antal, ikkeVestlige, pct, pct_ikkeVestlige) SELECT P.DimTidID, @analyse, '-', @niveau, G.GeometriName, (CAST(G.GeometriName AS VARCHAR)+CAST(@nytNiveau AS VARCHAR)), (CAST(P.DimTidID AS VARCHAR)+'Overblik'), @gruppe, Count(P.PNR), COUNT(CASE H.Statsborgerret WHEN 'IKKEVESTLIG' THEN 1 ELSE NULL END), CAST((100.0*Count(P.PNR)/@ialt1864) AS DECIMAL(10,2)), CAST((100.0*Count(CASE H.Statsborgerret WHEN 'IKKEVESTLIG' THEN 1 ELSE NULL END)/@ialtIkkeVestlig1864) AS DECIMAL(10,2)) FROM LOISStatistik2.LOISstatistikSystem.DimOverlay AS O INNER JOIN LOISStatistik2.LOISstatistikSystem.DimGeometri AS G ON G.DimGeometriId = O.DimGeometriId INNER JOIN LOISStatistik2.CPR.Kom_Personer_basis AS P ON P.DimPunktId = O.DimPunktId INNER JOIN LOISStatistik2.dbo.KL_Statsborger_Foraldre AS H ON H.PNR = P.PNR WHERE G.StatKortId=@statKortId AND P.DimTidID=@count AND P.alder>17 AND P.alder<65 GROUP BY P.DimTidID, G.GeometriName END ---------------------------------------------------------------------- SELECT @statKortId=min(statKortId) FROM #Temp99 WHERE statKortId>@statKortId SET @forste = 0 END DROP TABLE #Temp99 -- Vi springer 3 måneder (+300) -- (+100) er månedsvis og (+1000) er år SET @count = @count + 300; IF (@count-(FLOOR(@count/10000)*10000))>1299 SET @count=(FLOOR(@count/10000)*10000)+10101 END; -- SELECT dbo.hk_moni_ydelse_momentum.DimTidID AS Tid, G.Niveau_5, G.NiveauNavn_5,(CASE WHEN LEN(G.NiveauNavn_5)>8 THEN SUBSTRING(G.NiveauNavn_5,9,LEN(G.NiveauNavn_5)-8) ELSE G.NiveauNavn_5 END) AS BoligForening, dbo.hk_moni_ydelse_momentum.cpr, dbo.hk_moni_ydelse_momentum.cpr0, dbo.hk_moni_ydelse_momentum.borger, dbo.hk_moni_ydelse_momentum.maalgruppe, dbo.hk_moni_ydelse_momentum.ansvarligSagsbehandler, dbo.hk_moni_ydelse_momentum.dfdg_kontaktgr, dbo.hk_moni_ydelse_momentum.alder -- FROM LS2DM.dbo.FactBorger AS P INNER JOIN LS2DM.dbo.DimGeometri AS G ON G.DimGeometriID = P.DimGeometriAdresse INNER JOIN dbo.hk_moni_ydelse_momentum ON P.DimTid = dbo.hk_moni_ydelse_momentum.DimTidID INNER JOIN LS2DM.dbo.DimBorger ON P.DimBorger = LS2DM.dbo.DimBorger.DimBorgerID AND dbo.hk_moni_ydelse_momentum.cpr0 = LS2DM.dbo.DimBorger.Personnummer