-- 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;