woensdag 30 maart 2016

trukje subquery en inputparameters + Cumulutieve maandstanden



  CREATE OR REPLACE FORCE VIEW "DWH_DM_ZRM"."VW_OKT_TO_KENGETAL_CUM" ("DATUM_CUMULATIEF", "GEBIED_CODE", "GEBIED_OMSCHRIJVING", "KENGETAL", "AANTAL_JEUGDIGEN", "EENHEID", "TYPE") AS
  SELECT 
                         '1-' || cast(K.KAL_MAAND as varchar2(2)) || '-' || CAST(K.KAL_JAAR as varchar2(4))   DATUM_CUMULATIEF            ,          
                        '' AS GEBIED_CODE,
                        '' AS GEBIED_OMSCHRIJVING,
                        'OKT_AANTAL_JEUGDIGEN_CUMULATIEF' AS KENGETAL,
                       
                        MAX((SELECT COUNT(DISTINCT FCT_CLIENTNUMMER) AANTAL FROM  DWH_DM_ZRM.ZRM_FCT_OKT_DAG  SB
                                               INNER JOIN DWH_DM_ZRM.ZRM_DIM_KALENDER SK ON SK.KAL_DATUM_KEY = SB.FCT_PEILDATUM
             WHERE SK.KAL_JAAR  = K.KAL_JAAR AND SK.KAL_MAAND BETWEEN 1 AND K.KAL_MAAND
                           )) AANTAL_JEUGDIGEN,                  
                        'AANTAL' AS "EENHEID"          ,
                        'OKT' AS "TYPE"                         
FROM  DWH_DM_ZRM.ZRM_DIM_KALENDER K
WHERE K.KAL_JAAR > = 2015
GROUP BY K.KAL_JAAR, K.KAL_MAAND
ORDER BY TO_DATE( CAST(K.KAL_JAAR as varchar2(4)) || '-' || cast(K.KAL_MAAND as varchar2(2)) || '-01', 'YYYY-MM-DD'  );


Toelichting:
Met de het zwarte stukje bouw je alle maanden op. Daarna kan je de k.kal_jaar en k.kal_maand meegeven aan de subquery. Deze voert een onafhankelijk subquery uit met deze inputparameters. Dit resultaat moet nog wel even door de max functie aangezien anders de Group by niet werkt van de hoofdquery

cumulatieve maandstanden


 Gebruikt om maandstanden cumulatief te berekenen in Derived table "D_DashboardBereikCumulatief"
is een union van sqlblokjes per soort pgb zin etc


SELECT 
        TO_DATE( CAST(K.KAL_JAAR as varchar2(4)) || '-' || cast(K.KAL_MAAND as varchar2(2)) || '-01', 'YYYY-MM-DD'  ) DATUM_CUMULATIEF,       
        MAX((SELECT COUNT(DISTINCT FCT_DIM_CLIENT_KEY) AANTAL FROM DWH_DM_ZRM.ZRM_FCT_BESCHIKKING_DAG_ARCH SB
                INNER JOIN DWH_DM_ZRM.ZRM_DIM_LEVERINGSVORM L ON L.LVM_DIM_LEVERINGSVORM_KEY = SB.FCT_DIM_LEVERINGSVORM_KEY
                  INNER JOIN DWH_DM_ZRM.ZRM_DIM_KALENDER SK ON SK.KAL_DATUM_KEY = SB.FCT_PEILDATUM
              WHERE SK.KAL_JAAR  = K.KAL_JAAR AND SK.KAL_MAAND BETWEEN 1 AND K.KAL_MAAND
                      AND L.LVM_LEVERINGSVORM_CD = 'PGB' 
                      AND SB.FCT_DATUM_ARCHIEF  = '31-12-2016'
                      )) AANTAL_JEUGDIGEN,       
        'Aantal jeugdigen PGB' Xlabel
FROM  DWH_DM_ZRM.ZRM_DIM_KALENDER K
WHERE K.KAL_JAAR > = 2015
GROUP BY K.KAL_JAAR, K.KAL_MAAND;





Geen opmerkingen:

Een reactie posten