-- Proces tid 0:02 (alle år 20150101 til 20210401 -- LOISStatistik2.dbo.KL_monitorering -- LOISStatistik2.GeoDemografiSocioøkonomi.Uddannelse -- LOISStatistik2.GeoDemografiSocioøkonomi.Husstandsindkomst -- LOISStatistik2.GeoDemografiSocioøkonomi.Beskæftigelse DECLARE @DimTid_seneste INT; SET @DimTid_seneste = 20210501; DECLARE @count 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 @ialtUdd INT; DECLARE @ialtPindk INT; DECLARE @ialtIndk INT; DECLARE @ialtEjBeskaft INT; -- DELETE FROM LOISStatistik2.dbo.KL_monitorering DELETE FROM LOISStatistik2.dbo.KL_monitorering WHERE KL_analyse='Beskæftigelse' -- DELETE FROM LOISStatistik2.dbo.KL_monitorering WHERE KL_analyse='Personindkomst' DELETE FROM LOISStatistik2.dbo.KL_monitorering WHERE KL_analyse='Husstandsindkomst' DELETE FROM LOISStatistik2.dbo.KL_monitorering WHERE KL_analyse='Uddannelse' SET @count = 20150101; -- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -- Dette er yderste loop som løber igennem alle dimTid xxxxxxxxxxxxxxx -- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx WHILE @count <= @DimTid_seneste BEGIN PRINT @count DECLARE @Min int -- NB: 1.post i tabellen [LOISStatistik2].[dbo].[KL_monitorering_Statkort] SKAL være hele kommunen (f.eks. 'Helsingor') SELECT @Min=min(KL_ID) FROM [LOISStatistik2].[dbo].[KL_monitorering_Statkort] SELECT @niveauName=NiveauNavn FROM [LOISStatistik2].[dbo].[KL_monitorering_Statkort] WHERE KL_ID=@Min -- Her benyttes Tæller - beregn Tæller for kommunen (nævner er DK) SET @ialtUdd=(SELECT TOP(1) Grund_T FROM LOISStatistik2.GeoDemografiSocioøkonomi.Uddannelse AS P WHERE Niveau=@niveauName AND "Tæller"='Alle husstande' AND DimTidID=@count) PRINT N'Beregnet Grund_T for hele kommunne:' PRINT @ialtUdd -- Her benyttes Tæller - beregn Tæller for kommunen (nævner er DK) -- I_beskæftigelse_T= Selvstændig_T+Topledelse_T+Højt_T+Mellem_T+Lav_T+Andre_T -- Studerende= Student_T -- Børn og gamle= Pension_T, Barn_T -- IKKE i beskæftigelse= Arbejdsløs_T+Førtidspension_T+UkendtAndre_T SET @ialtEjBeskaft=(SELECT TOP(1) ((Arbejdsløs_T+Førtidspension_T+UkendtAndre_T)/(100.0-Pension_T-Barn_T-Student_T)*100.0) FROM LOISStatistik2.GeoDemografiSocioøkonomi.Beskæftigelse AS P WHERE Niveau=@niveauName AND "Tæller"='Alle husstande' AND DimTidID=@count) PRINT N'Beregnet I_Beskæftigelse_T for hele kommunne:' PRINT @ialtEjBeskaft -- Her benyttes Indeks SET @ialtIndk=(SELECT TOP(1) Gennemsnit_I FROM LOISStatistik2.GeoDemografiSocioøkonomi.Husstandsindkomst AS P WHERE Niveau=@niveauName AND "Tæller"='Alle husstande' AND DimTidID=@count) PRINT @ialtIndk -- Nævner=Danmark: SET @ialtPindk=(SELECT TOP(1) Gennemsnit_N FROM LOISStatistik2.GeoDemografiSocioøkonomi.Personindkomst AS P WHERE Niveau=@niveauName AND nævner='Danmark' AND "Tæller"='Alle husstande' AND DimTidID=@count) PRINT @ialtPindk -- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -- For hver StatKortId som medtages loopes igennem alle kort -- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 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 @statKortId SELECT distinct(DimGeometriId),StatKortId,GeometriName INTO #Temp0 FROM [LOISStatistik2].[LOISstatistikSystem].[DimGeometri] WHERE StatKortId=@statKortId SELECT * FROM #Temp0 ORDER BY DimGeometriId SELECT @Min=min(DimGeometriId) FROM #Temp0 PRINT @Min -- 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,CAST(@nytNiveau AS VARCHAR)) -> (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)+'-') SET @niveau =(SELECT TOP(1) TabelNavn FROM [LOISStatistik2].[LOISstatistikSystem].[StatistikKort] WHERE StatKortID=@StatKortId) PRINT @niveau PRINT @nytNiveau -- Uddannelse ---------------------------------------------------------- SET @analyse = 'Uddannelse'; SET @gruppe = 'Alle'; PRINT @analyse PRINT @gruppe INSERT INTO LOISStatistik2.dbo.KL_monitorering (KL_dimTid, KL_analyse, KL_analyseNavn, KL_Niveau, KL_NiveauNavn, Map_ID, ID, KL_gruppe, antal, ikkeVestlige, indexOmr, indexKomm) SELECT P.DimTidID, @analyse, '-', Niveau, NiveauNavn, (CAST(NiveauNavn AS VARCHAR)+CAST(@nytNiveau AS VARCHAR)), (CAST(P.DimTidID AS VARCHAR)+'-'), @gruppe, Grund_N, 0, Grund_T, @ialtUdd FROM LOISStatistik2.GeoDemografiSocioøkonomi.Uddannelse AS P WHERE Niveau=@niveau AND [Tæller]='Alle husstande' AND DimTidID=@count -- FROM LOISStatistik2.GeoDemografiSocioøkonomi.Uddannelse AS P WHERE Niveau=@niveau AND "Tæller"='Alle husstande' AND DimTidID=@count -- Beskæftigelse ------------------------------------------------------ SET @analyse = 'Beskæftigelse'; SET @gruppe = 'Alle'; PRINT @analyse PRINT @gruppe -- I_beskæftigelse_T=(Selvstændig_T+Topledelse_T+Højt_T+Mellem_T+Lav_T+Andre_T) INSERT INTO LOISStatistik2.dbo.KL_monitorering (KL_dimTid, KL_analyse, KL_analyseNavn, KL_Niveau, KL_NiveauNavn, Map_ID, ID, KL_gruppe, antal, ikkeVestlige, indexOmr, indexKomm) SELECT P.DimTidID, @analyse, '-', Niveau, NiveauNavn, (CAST(NiveauNavn AS VARCHAR)+CAST(@nytNiveau AS VARCHAR)), (CAST(P.DimTidID AS VARCHAR)+'-'), @gruppe, ((Arbejdsløs_N+Førtidspension_N+UkendtAndre_N)/(100.0-Pension_N-Barn_N-Student_N)*100.0),0,((Arbejdsløs_T+Førtidspension_T+UkendtAndre_T)/(100.0-Pension_T-Barn_T-Student_T)*100.0), @ialtEjBeskaft FROM LOISStatistik2.GeoDemografiSocioøkonomi.Beskæftigelse AS P WHERE Niveau=@niveau AND [Tæller]='Alle husstande' AND DimTidID=@count -- FROM LOISStatistik2.GeoDemografiSocioøkonomi.Beskæftigelse AS P WHERE Niveau=@niveau AND "Tæller"='Alle husstande' AND DimTidID=@count -- Husstandsindkomst -------------------------------------------------- SET @analyse = 'Husstandsindkomst'; SET @gruppe = 'Alle'; PRINT @analyse PRINT @gruppe INSERT INTO LOISStatistik2.dbo.KL_monitorering (KL_dimTid, KL_analyse, KL_analyseNavn, KL_Niveau, KL_NiveauNavn, Map_ID, ID, KL_gruppe, antal, ikkeVestlige, indexOmr, indexKomm) SELECT P.DimTidID, @analyse, '-', Niveau, NiveauNavn, (CAST(NiveauNavn AS VARCHAR)+CAST(@nytNiveau AS VARCHAR)), (CAST(P.DimTidID AS VARCHAR)+'-'), @gruppe, Gennemsnit_I, @ialtIndk, 0, 0 FROM LOISStatistik2.GeoDemografiSocioøkonomi.Husstandsindkomst AS P WHERE Niveau=@niveau AND [Tæller]='Alle husstande' AND DimTidID=@count -- FROM LOISStatistik2.GeoDemografiSocioøkonomi.Husstandsindkomst AS P WHERE Niveau=@niveau AND "Tæller"='Alle husstande' AND DimTidID=@count ---------------------------------------------------------------------- SELECT @Min=min(DimGeometriId) FROM #Temp0 WHERE DimGeometriId>@Min DROP TABLE #Temp0 ---------------------------------------------------------------------- SELECT @statKortId=min(statKortId) FROM #Temp99 WHERE statKortId>@statKortId END DROP TABLE #Temp99 -- 20150101; SET @count = @count + 10000; END;