Tuesday, February 4, 2014

GL_ACCESS_SET_LEDGERS

SELECT  glasna.access_set_id    AS ACCESS_SET_ID,
               DECODE(gllsa.ledger_id,
                      NULL, glasna.ledger_id,
                      gllsa.ledger_id) AS LEDGER_ID,
               DECODE(MIN(DECODE(glasna.all_segment_value_flag,
                                 'Y',
                                 DECODE(glasna.access_privilege_code,
                                        'B', 1, 'R', 3),
                                 DECODE(glasna.access_privilege_code,
                                        'B', 2, 'R', 3))),                    
                       1, 'F',
                       2, 'B',
                       3, 'R')  AS ACCESS_PRIVILEGE_CODE,
               MAX(glasna.LAST_UPDATE_DATE) AS LAST_UPDATE_DATE,
               0 AS LAST_UPDATED_BY,
               MAX(glasna.CREATION_DATE) AS CREATION_DATE,
               0 AS CREATED_BY,
               0 AS LAST_UPDATE_LOGIN,
               TO_DATE(NULL)                   AS START_DATE,
               TO_DATE(NULL)                   AS END_DATE
       FROM    GL_ACCESS_SETS glas,
               GL_ACCESS_SET_NORM_ASSIGN glasna,
               GL_LEDGER_SET_ASSIGNMENTS gllsa                                
       WHERE   glas.automatically_created_flag = 'N'
       AND     glasna.access_set_id = glas.access_set_id
       AND     NVL(glasna.status_code, 'X') <> 'I'
       AND     gllsa.ledger_set_id (+) = glasna.ledger_id
       GROUP BY glasna.access_set_id,
                DECODE(gllsa.ledger_id, NULL,
                       glasna.ledger_id, gllsa.ledger_id)
       UNION ALL
       Select  glas.access_set_id AS ACCESS_SET_ID,
       DECODE(gll.object_type_code,'S',gllsa.ledger_id,glasna.ledger_id) AS LEDGER_ID,
       DECODE(MAX(DECODE(gll.object_type_code,'S',1,DECODE(gllsa.ledger_id,NULL,
                                                      DECODE(glasna.all_segment_value_flag,'Y',
                                                             DECODE(glasna.access_privilege_code,'R',3,'B',1),
                                                             DECODE(glasna.access_privilege_code,'R',3,'B',2)),
                                                      DECODE(glasna2.all_segment_value_flag,'Y',
                                                             DECODE(glasna2.access_privilege_code,'R',3,'B',1),
                                                             DECODE(glasna2.access_privilege_code,'R',3,'B',2))))),
                                         1,'F',2,'B',3,'R') AS ACCESS_PRIVILEGE_CODE,
   MAX(glasna2.LAST_UPDATE_DATE) AS LAST_UPDATE_DATE,
   0 AS LAST_UPDATED_BY,
   MAX(glasna2.CREATION_DATE) AS CREATION_DATE,
   0 AS CREATED_BY,
   0 AS LAST_UPDATE_LOGIN,
   TO_DATE(NULL) AS START_DATE,
   TO_DATE(NULL) AS END_DATE  
FROM   gl_ledgers gll,
       gl_access_sets glas,
       gl_access_set_norm_assign glasna,
       gl_ledger_set_assignments gllsa,
       gl_access_set_norm_assign glasna2
WHERE  glas.access_set_id = gll.implicit_access_set_id
AND    glas.automatically_created_flag = 'Y'
AND    glasna.access_set_id = glas.access_set_id
AND    NVL(glasna.status_code,'X') <> 'I'
AND    gllsa.ledger_set_id (+) = glasna.ledger_id
AND    NVL(gllsa.status_code (+),'X') <> 'I'
AND    glasna2.access_set_id = DECODE(gllsa.ledger_set_id , NULL, glasna.access_set_id, glasna.access_set_id)
AND    glasna2.ledger_id = DECODE(gll.object_type_code,'S',glasna.ledger_id,NVL(gllsa.ledger_id,glasna.ledger_id))
AND    NVL(glasna2.status_code, 'X') <> 'I'
GROUP BY   glas.access_set_id,
           DECODE(gll.object_type_code,'S',gllsa.ledger_id,glasna.ledger_id)
         
         

No comments:

Post a Comment