-- Consulta registrada el 2025-09-01T18:29:17.049136 WITH conso AS ( SELECT LOOKUP_CODE, DESCRIPTION, ATTRIBUTE1 AS PARENT, DISPLAY_SEQUENCE, TAG, REGEXP_COUNT(LOOKUP_CODE, '[^.]') AS NIVEL --permite saber el nivel en el que va, toma la cantidad de puntos y entiende el nivel FROM FND_LOOKUP_VALUES_VL WHERE LOOKUP_TYPE = 'UAI_CONS_GESTION_ESTRUCTURA' --traigo la forma de consolidación 0, 0.0, 0.0.0, 1, etc... --acá está A,B,C,D. Además, se concatena ), assig AS ( SELECT ATTRIBUTE3 AS CONSOLIDACION, ATTRIBUTE2 AS CG, ATTRIBUTE1 AS FORMA FROM FND_LOOKUP_VALUES_VL WHERE LOOKUP_TYPE = 'UAI_CONS_GESTION_ASIGNACION' --traigo los atributos donde sale la consolidación (son de nivel 3), eventualmente --estará unida a la conso para tener todas las formas de consolidación. ), cc_attrs AS ( SELECT FLEX_VALUE, ATTRIBUTE4, ATTRIBUTE12 FROM fnd_flex_values_vl WHERE VALUE_CATEGORY = 'Centro de Costo UAI' --traigo los datos importantes del centro de costo ), asientos AS ( SELECT gld.name, gjl.period_name, ACCOUNT_TYPE, gcc.segment4, gcc.segment3, fcc.ATTRIBUTE4 AS CSA, --esta es la subárea (atributo del CC) a.CONSOLIDACION, (SELECT DESCRIPTION FROM fnd_flex_values_vl WHERE VALUE_CATEGORY = 'Cuenta de Gestión UAI' --traigo el nombre del ipr AND FLEX_VALUE = gcc.segment3) AS CG, (SELECT DESCRIPTION FROM fnd_flex_values_vl WHERE VALUE_CATEGORY = 'Centro de Costo UAI' --traigo el nombre del cc AND FLEX_VALUE = gcc.segment4) AS CC, (SELECT DESCRIPTION FROM fnd_flex_values_vl WHERE VALUE_CATEGORY = 'Subárea' --traigo el nombre de la subárea AND FLEX_VALUE = fcc.ATTRIBUTE4) AS SA, NVL(gjl.accounted_cr, 0) - NVL(gjl.accounted_dr, 0) AS accounted --calculo la diferencia de créditos y débitos --esto se hace así, porque es EERR FROM gl_je_headers gjh JOIN gl_je_lines gjl ON gjh.je_header_id = gjl.je_header_id --para cruzar con la línea y tener el cruce con la code_combination_id JOIN gl_code_combinations gcc ON gjl.code_combination_id = gcc.code_combination_id --me permite cruzar con la code_combination_id JOIN gl_ledgers gld ON gjh.ledger_id = gld.ledger_id --por si acaso en un futuro tienen otro libro JOIN gl_je_sources gjs ON gjh.je_source = gjs.je_source_name --así cruzo con el módulo JOIN gl_periods pc ON gld.period_set_name = pc.period_set_name AND gjl.period_name = pc.period_name --esto me permite cruzar el periodo en el libro y línea JOIN cc_attrs fcc ON gcc.segment4 = fcc.FLEX_VALUE --cruzo contra la tabla temporal de cc y corroboro el cruce LEFT JOIN assig a ON a.CG = gcc.segment3 AND a.FORMA = fcc.ATTRIBUTE12 --quiero todo lo que está en la assig (niveles 3 consolidado) --luego lo que hago es cruzar contra el segmento ipr de la code_combination y así tengo también los valores nulos WHERE gjl.status = 'P' --posteado AND gjl.currency_code <> 'STAT' --moneda no estadística AND gjl.period_name = 'Feb-25' --parametrizo el periodo AND ACCOUNT_TYPE in ('R','E') ), lineas AS ( SELECT name, ACCOUNT_TYPE, segment4, segment3, COALESCE(CONSOLIDACION, '0.0.0') AS LOOKUP_CODE, CG, CC, CSA, SA, SUM(accounted) AS accounted -- calculo la suma agrupando todos los asientos que tengan mismo nombre, tipo de cuenta y demás... FROM asientos GROUP BY name, ACCOUNT_TYPE, segment4, segment3, COALESCE(CONSOLIDACION, '0.0.0'), CG, CC, CSA, SA --los CG,CC,SA son nombres y CSA es la subárea, los otros son segmentos de la code ), asientos_acumulados AS ( -- Usaremos el código de asientos ya creado, en asientos no trajimos period_year y period_num sin usarlos, pero acá si nos interesa para el acumulado SELECT gld.name, gjl.period_name, ACCOUNT_TYPE, gcc.segment4, gcc.segment3, fcc.ATTRIBUTE4 AS CSA, a.CONSOLIDACION, (SELECT DESCRIPTION FROM fnd_flex_values_vl WHERE VALUE_CATEGORY = 'Cuenta de Gestión UAI' AND FLEX_VALUE = gcc.segment3) AS CG, (SELECT DESCRIPTION FROM fnd_flex_values_vl WHERE VALUE_CATEGORY = 'Centro de Costo UAI' AND FLEX_VALUE = gcc.segment4) AS CC, (SELECT DESCRIPTION FROM fnd_flex_values_vl WHERE VALUE_CATEGORY = 'Subárea' AND FLEX_VALUE = fcc.ATTRIBUTE4) AS SA, NVL(gjl.accounted_cr, 0) - NVL(gjl.accounted_dr, 0) AS accounted, pc.period_num, pc.period_year FROM gl_je_headers gjh JOIN gl_je_lines gjl ON gjh.je_header_id = gjl.je_header_id JOIN gl_code_combinations gcc ON gjl.code_combination_id = gcc.code_combination_id JOIN gl_ledgers gld ON gjh.ledger_id = gld.ledger_id JOIN gl_je_sources gjs ON gjh.je_source = gjs.je_source_name JOIN gl_periods pc ON gld.period_set_name = pc.period_set_name AND gjl.period_name = pc.period_name JOIN cc_attrs fcc ON gcc.segment4 = fcc.FLEX_VALUE LEFT JOIN assig a ON a.CG = gcc.segment3 AND a.FORMA = fcc.ATTRIBUTE12 WHERE gjl.status = 'P' AND gjl.currency_code <> 'STAT' AND ACCOUNT_TYPE IN ('R','E') AND pc.period_year = (SELECT period_year FROM gl_periods WHERE period_name = 'Feb-25' FETCH FIRST 1 ROW ONLY) AND pc.period_num <= (SELECT period_num FROM gl_periods WHERE period_name = 'Feb-25' FETCH FIRST 1 ROW ONLY) ) SELECT segment4, SUM(accounted) AS accounted FROM lineas WHERE segment4 = '6418' GROUP BY segment4 -- Consulta registrada el 2025-09-01T18:26:46.965638 WITH conso AS ( SELECT LOOKUP_CODE, DESCRIPTION, ATTRIBUTE1 AS PARENT, DISPLAY_SEQUENCE, TAG, REGEXP_COUNT(LOOKUP_CODE, '[^.]') AS NIVEL --permite saber el nivel en el que va, toma la cantidad de puntos y entiende el nivel FROM FND_LOOKUP_VALUES_VL WHERE LOOKUP_TYPE = 'UAI_CONS_GESTION_ESTRUCTURA' --traigo la forma de consolidación 0, 0.0, 0.0.0, 1, etc... --acá está A,B,C,D. Además, se concatena ), assig AS ( SELECT ATTRIBUTE3 AS CONSOLIDACION, ATTRIBUTE2 AS CG, ATTRIBUTE1 AS FORMA FROM FND_LOOKUP_VALUES_VL WHERE LOOKUP_TYPE = 'UAI_CONS_GESTION_ASIGNACION' --traigo los atributos donde sale la consolidación (son de nivel 3), eventualmente --estará unida a la conso para tener todas las formas de consolidación. ), cc_attrs AS ( SELECT FLEX_VALUE, ATTRIBUTE4, ATTRIBUTE12 FROM fnd_flex_values_vl WHERE VALUE_CATEGORY = 'Centro de Costo UAI' --traigo los datos importantes del centro de costo ), asientos AS ( SELECT gld.name, gjl.period_name, ACCOUNT_TYPE, gcc.segment4, gcc.segment3, fcc.ATTRIBUTE4 AS CSA, --esta es la subárea (atributo del CC) a.CONSOLIDACION, (SELECT DESCRIPTION FROM fnd_flex_values_vl WHERE VALUE_CATEGORY = 'Cuenta de Gestión UAI' --traigo el nombre del ipr AND FLEX_VALUE = gcc.segment3) AS CG, (SELECT DESCRIPTION FROM fnd_flex_values_vl WHERE VALUE_CATEGORY = 'Centro de Costo UAI' --traigo el nombre del cc AND FLEX_VALUE = gcc.segment4) AS CC, (SELECT DESCRIPTION FROM fnd_flex_values_vl WHERE VALUE_CATEGORY = 'Subárea' --traigo el nombre de la subárea AND FLEX_VALUE = fcc.ATTRIBUTE4) AS SA, NVL(gjl.accounted_cr, 0) - NVL(gjl.accounted_dr, 0) AS accounted --calculo la diferencia de créditos y débitos --esto se hace así, porque es EERR FROM gl_je_headers gjh JOIN gl_je_lines gjl ON gjh.je_header_id = gjl.je_header_id --para cruzar con la línea y tener el cruce con la code_combination_id JOIN gl_code_combinations gcc ON gjl.code_combination_id = gcc.code_combination_id --me permite cruzar con la code_combination_id JOIN gl_ledgers gld ON gjh.ledger_id = gld.ledger_id --por si acaso en un futuro tienen otro libro JOIN gl_je_sources gjs ON gjh.je_source = gjs.je_source_name --así cruzo con el módulo JOIN gl_periods pc ON gld.period_set_name = pc.period_set_name AND gjl.period_name = pc.period_name --esto me permite cruzar el periodo en el libro y línea JOIN cc_attrs fcc ON gcc.segment4 = fcc.FLEX_VALUE --cruzo contra la tabla temporal de cc y corroboro el cruce LEFT JOIN assig a ON a.CG = gcc.segment3 AND a.FORMA = fcc.ATTRIBUTE12 --quiero todo lo que está en la assig (niveles 3 consolidado) --luego lo que hago es cruzar contra el segmento ipr de la code_combination y así tengo también los valores nulos WHERE gjl.status = 'P' --posteado AND gjl.currency_code <> 'STAT' --moneda no estadística AND gjl.period_name = 'Feb-25' --parametrizo el periodo AND ACCOUNT_TYPE in ('R','E') ), lineas AS ( SELECT name, ACCOUNT_TYPE, segment4, segment3, COALESCE(CONSOLIDACION, '0.0.0') AS LOOKUP_CODE, CG, CC, CSA, SA, SUM(accounted) AS accounted -- calculo la suma agrupando todos los asientos que tengan mismo nombre, tipo de cuenta y demás... FROM asientos GROUP BY name, ACCOUNT_TYPE, segment4, segment3, COALESCE(CONSOLIDACION, '0.0.0'), CG, CC, CSA, SA --los CG,CC,SA son nombres y CSA es la subárea, los otros son segmentos de la code ), asientos_acumulados AS ( -- Usaremos el código de asientos ya creado, en asientos no trajimos period_year y period_num sin usarlos, pero acá si nos interesa para el acumulado SELECT gld.name, gjl.period_name, ACCOUNT_TYPE, gcc.segment4, gcc.segment3, fcc.ATTRIBUTE4 AS CSA, a.CONSOLIDACION, (SELECT DESCRIPTION FROM fnd_flex_values_vl WHERE VALUE_CATEGORY = 'Cuenta de Gestión UAI' AND FLEX_VALUE = gcc.segment3) AS CG, (SELECT DESCRIPTION FROM fnd_flex_values_vl WHERE VALUE_CATEGORY = 'Centro de Costo UAI' AND FLEX_VALUE = gcc.segment4) AS CC, (SELECT DESCRIPTION FROM fnd_flex_values_vl WHERE VALUE_CATEGORY = 'Subárea' AND FLEX_VALUE = fcc.ATTRIBUTE4) AS SA, NVL(gjl.accounted_cr, 0) - NVL(gjl.accounted_dr, 0) AS accounted, pc.period_num, pc.period_year FROM gl_je_headers gjh JOIN gl_je_lines gjl ON gjh.je_header_id = gjl.je_header_id JOIN gl_code_combinations gcc ON gjl.code_combination_id = gcc.code_combination_id JOIN gl_ledgers gld ON gjh.ledger_id = gld.ledger_id JOIN gl_je_sources gjs ON gjh.je_source = gjs.je_source_name JOIN gl_periods pc ON gld.period_set_name = pc.period_set_name AND gjl.period_name = pc.period_name JOIN cc_attrs fcc ON gcc.segment4 = fcc.FLEX_VALUE LEFT JOIN assig a ON a.CG = gcc.segment3 AND a.FORMA = fcc.ATTRIBUTE12 WHERE gjl.status = 'P' AND gjl.currency_code <> 'STAT' AND ACCOUNT_TYPE IN ('R','E') AND pc.period_year = (SELECT period_year FROM gl_periods WHERE period_name = 'Feb-25' FETCH FIRST 1 ROW ONLY) AND pc.period_num <= (SELECT period_num FROM gl_periods WHERE period_name = 'Feb-25' FETCH FIRST 1 ROW ONLY) ) SELECT * from lineas where segment4 = '6418' ORDER BY LOOKUP_CODE ASC -- Consulta registrada el 2025-08-27T15:43:54.713608 select * from XCC_BALANCES FETCH FIRST 999 ROWS ONLY -- Consulta registrada el 2025-08-25T17:31:42.151316 SELECT DISTINCT FLEX_VALUE FROM FND_FLEX_VALUES_VL where VALUE_CATEGORY ='Subarea'