03.업/11.디비2021. 12. 15. 08:50

  SELECT '#OZParam.yyyy#'|| '년도  [' || CAMPUS_DIV_NM || '] 기준' AS SUBTITLE
       , OCCU_NM
       , MM01, MM02, MM03, MM04, MM05, MM06, MM07, MM08, MM09, MM10, MM11, MM12
       , MAX(TOT) OVER() AS TOT
       , TRUNC(MAX(TOT) OVER() / MAX(MCNT) OVER(), 0) AS AVGCNT  
    FROM ( 
         SELECT CAMPUS_DIV_NM
              , OCCU_NM
              , MM01, MM02, MM03, MM04, MM05, MM06, MM07, MM08, MM09, MM10, MM11, MM12
              ,   NVL(CASE WHEN SUM(MM01) OVER() > 0 THEN 1 ELSE 0 END, 0)
                + NVL(CASE WHEN SUM(MM02) OVER() > 0 THEN 1 ELSE 0 END, 0)
                + NVL(CASE WHEN SUM(MM03) OVER() > 0 THEN 1 ELSE 0 END, 0)
                + NVL(CASE WHEN SUM(MM04) OVER() > 0 THEN 1 ELSE 0 END, 0)
                + NVL(CASE WHEN SUM(MM05) OVER() > 0 THEN 1 ELSE 0 END, 0)
                + NVL(CASE WHEN SUM(MM06) OVER() > 0 THEN 1 ELSE 0 END, 0)
                + NVL(CASE WHEN SUM(MM07) OVER() > 0 THEN 1 ELSE 0 END, 0)
                + NVL(CASE WHEN SUM(MM08) OVER() > 0 THEN 1 ELSE 0 END, 0)
                + NVL(CASE WHEN SUM(MM09) OVER() > 0 THEN 1 ELSE 0 END, 0)
                + NVL(CASE WHEN SUM(MM10) OVER() > 0 THEN 1 ELSE 0 END, 0)        
                + NVL(CASE WHEN SUM(MM11) OVER() > 0 THEN 1 ELSE 0 END, 0)
                + NVL(CASE WHEN SUM(MM12) OVER() > 0 THEN 1 ELSE 0 END, 0) AS MCNT
              , SUM(TOT) OVER() AS TOT
              , CAMPUS_DIV_CD, PRT_ORD, OCCU_CD
           FROM (
                SELECT F_CMN_CODE_NM('CMN54',NVL(CAMPUS_DIV_CD, '10')) AS CAMPUS_DIV_NM
                     , D2.CD_NM AS OCCU_NM
                     , SUM(CASE WHEN TO_CHAR(BAK_DT, 'MM') = '01' THEN 1 ELSE 0 END) AS MM01
                     , SUM(CASE WHEN TO_CHAR(BAK_DT, 'MM') = '02' THEN 1 ELSE 0 END) AS MM02
                     , SUM(CASE WHEN TO_CHAR(BAK_DT, 'MM') = '03' THEN 1 ELSE 0 END) AS MM03
                     , SUM(CASE WHEN TO_CHAR(BAK_DT, 'MM') = '04' THEN 1 ELSE 0 END) AS MM04
                     , SUM(CASE WHEN TO_CHAR(BAK_DT, 'MM') = '05' THEN 1 ELSE 0 END) AS MM05
                     , SUM(CASE WHEN TO_CHAR(BAK_DT, 'MM') = '06' THEN 1 ELSE 0 END) AS MM06
                     , SUM(CASE WHEN TO_CHAR(BAK_DT, 'MM') = '07' THEN 1 ELSE 0 END) AS MM07
                     , SUM(CASE WHEN TO_CHAR(BAK_DT, 'MM') = '08' THEN 1 ELSE 0 END) AS MM08
                     , SUM(CASE WHEN TO_CHAR(BAK_DT, 'MM') = '09' THEN 1 ELSE 0 END) AS MM09
                     , SUM(CASE WHEN TO_CHAR(BAK_DT, 'MM') = '10' THEN 1 ELSE 0 END) AS MM10
                     , SUM(CASE WHEN TO_CHAR(BAK_DT, 'MM') = '11' THEN 1 ELSE 0 END) AS MM11
                     , SUM(CASE WHEN TO_CHAR(BAK_DT, 'MM') = '12' THEN 1 ELSE 0 END) AS MM12
                     , SUM(1) AS TOT
                     , D1.CAMPUS_DIV_CD, D1.OCCU_CD, D2.PRT_ORD
                  FROM APS_MST_BAK_YMD D1 
                     , CMN_COM_CD D2        
                 WHERE 1=1
                   AND D1.YYYY     = '#OZParam.yyyy#'
                   AND D1.STATE_CD = '10'
                   AND D1.CAMPUS_DIV_CD = '#OZParam.campus_div_cd#'
                   AND TO_CHAR(D1.BAK_DT, 'YYYYMMDD') = TO_CHAR(LAST_DAY(BAK_DT), 'YYYYMMDD')
                   AND D1.OCCU_CD  = D2.CD
                   AND D2.CD_DIV   = 'APS03'
                 GROUP BY D1.CAMPUS_DIV_CD, D1.OCCU_CD, D2.PRT_ORD, D2.CD_NM
                 ) 
         )
   ORDER BY CAMPUS_DIV_CD, PRT_ORD, OCCU_CD

 

Posted by 봄날의차