--****************************************************************************
-- CONSULTA: OBTENER LAS DISTRIBUCIONES
--****************************************************************************
SELECT
DISTINCT
ACE.ID_ACCION_ESTRATEGICA AS ID_ACCION_ESTRATEGICA,
APE.ID_APORTE_ESTRATEGICO AS ID_APORTE_ESTRATEGICO,
CAN_APO.CANTIDAD_APORTES AS CANTIDAD_APORTES,
(1 / CAN_APO.CANTIDAD_APORTES) AS REPRESENTATIVIDAD,
APD.DISTRIBUCION_PORCENTUAL AS DISTRIBUCION,
((1 / CAN_APO.CANTIDAD_APORTES)*APD.DISTRIBUCION_PORCENTUAL) AS PROGRAMACION,
NVL(EJECUCION.PROMEDIO,0) AS PROMEDIO_EVALUACION,
((((1 / CAN_APO.CANTIDAD_APORTES)*APD.DISTRIBUCION_PORCENTUAL) * NVL(EJECUCION.PROMEDIO,0)) / 100) AS EJECUCION,
PA.ID_PERIODO_ANUAL AS PERIODO_ANUAL,
PA.ANO AS ANIO,
NVL(EJECUCION.ETAPA_PLAN,0) AS ETAPA_PLAN,
NVL(EJECUCION.FECHA_FINAL_EVALUACION,'01/01/2001') AS FECHA_FINAL_EVALUACION
FROM PERIODO_ANUAL PA
INNER JOIN APORTE_PAE_DISTRIBUCION APD ON (APD.PERIODO_ANUAL = PA.ID_PERIODO_ANUAL)
INNER JOIN APORTE_ESTRATEGICO APE ON (APE.ID_APORTE_ESTRATEGICO = APD.APORTE_ESTRATEGICO)
INNER JOIN ACCION_ESTRATEGICA ACE ON (ACE.ID_ACCION_ESTRATEGICA = APE.ACCION_ESTRATEGICA)
INNER JOIN (SELECT ACCION_ESTRATEGICA, COUNT(*) AS CANTIDAD_APORTES FROM PPI.APORTE_ESTRATEGICO GROUP BY ACCION_ESTRATEGICA) CAN_APO ON CAN_APO.ACCION_ESTRATEGICA = ACE.ID_ACCION_ESTRATEGICA
LEFT JOIN(
--****************************************************************************
-- CONSULTA: OBTENER LAS EVALUACIONES
--****************************************************************************
SELECT
DISTINCT
APD.APORTE_ESTRATEGICO,
AVG(MPE.EJECUCION) PROMEDIO,
MPE.ETAPA_PLAN,
PA.ANO,
MAX(EP.FECHA_FINAL_EVALUACION) AS FECHA_FINAL_EVALUACION
FROM PERIODO_ANUAL PA
INNER JOIN APORTE_PAE_DISTRIBUCION APD ON (APD.PERIODO_ANUAL = PA.ID_PERIODO_ANUAL)
INNER JOIN META_POA_APORTE MPA ON (MPA.APORTE_ESTRATEGICO = APD.APORTE_ESTRATEGICO)
INNER JOIN META_POA_EVALUACION MPE ON (MPE.META_POA = MPA.META_POA)
INNER JOIN META_POA MP ON (MP.ID_META_POA = MPE.META_POA)
INNER JOIN OBJETIVO_POA OP ON (OP.ID_OBJETIVO_POA = MP.OBJETIVO_POA)
INNER JOIN PLAN_OPERATIVO PO ON (PO.ID_PLAN_OPERATIVO = OP.PLAN_OPERATIVO AND PO.PERIODO_ANUAL = PA.ID_PERIODO_ANUAL)
INNER JOIN EVALUACION_OPERATIVA EO ON (EO.PLAN_OPERATIVO = PO.ID_PLAN_OPERATIVO AND EO.ETAPA_PLAN = MPE.ETAPA_PLAN)
INNER JOIN ETAPA_PLAN EP ON (EP.ID_ETAPA_PLAN = EO.ETAPA_PLAN)
WHERE
PA.ID_PERIODO_ANUAL IN (SELECT DISTINCT PERIODO_ANUAL FROM APORTE_PAE_DISTRIBUCION)
AND APD.APORTE_ESTRATEGICO = :id_aporte_estrategico
GROUP BY PA.ANO, APD.APORTE_ESTRATEGICO, MPE.ETAPA_PLAN, EP.FECHA_FINAL_EVALUACION
ORDER BY APD.APORTE_ESTRATEGICO, PA.ANO ASC
) EJECUCION ON (EJECUCION.ANO = PA.ANO AND EJECUCION.APORTE_ESTRATEGICO= APD.APORTE_ESTRATEGICO)
WHERE
PA.ID_PERIODO_ANUAL IN (SELECT DISTINCT PERIODO_ANUAL FROM APORTE_PAE_DISTRIBUCION)
AND APE.ID_APORTE_ESTRATEGICO = :id_aporte_estrategico
AND ACE.ID_ACCION_ESTRATEGICA = :id_accion_estrategica;
--****************************************************************************
-- CONSULTA: OBTENER LAS DISTRIBUCIONES
--****************************************************************************
SELECT
DISTINCT
SUM((((1 / CAN_APO.CANTIDAD_APORTES) * APD.DISTRIBUCION_PORCENTUAL) * NVL(EJECUCION.PROMEDIO, 0)) / 100) AS AVANCE_ACUMULADO
FROM PERIODO_ANUAL PA
INNER JOIN APORTE_PAE_DISTRIBUCION APD ON (APD.PERIODO_ANUAL = PA.ID_PERIODO_ANUAL)
INNER JOIN APORTE_ESTRATEGICO APE ON (APE.ID_APORTE_ESTRATEGICO = APD.APORTE_ESTRATEGICO)
INNER JOIN ACCION_ESTRATEGICA ACE ON (ACE.ID_ACCION_ESTRATEGICA = APE.ACCION_ESTRATEGICA)
INNER JOIN (SELECT ACCION_ESTRATEGICA, COUNT(*) AS CANTIDAD_APORTES FROM PPI.APORTE_ESTRATEGICO GROUP BY ACCION_ESTRATEGICA) CAN_APO ON CAN_APO.ACCION_ESTRATEGICA = ACE.ID_ACCION_ESTRATEGICA
LEFT JOIN(
--****************************************************************************
-- CONSULTA: OBTENER LAS EVALUACIONES
--****************************************************************************
SELECT
DISTINCT
APD.APORTE_ESTRATEGICO,
AVG(MPE.EJECUCION) PROMEDIO,
MPE.ETAPA_PLAN,
PA.ANO,
MAX(EP.FECHA_FINAL_EVALUACION) AS FECHA_FINAL_EVALUACION
FROM PERIODO_ANUAL PA
INNER JOIN APORTE_PAE_DISTRIBUCION APD ON (APD.PERIODO_ANUAL = PA.ID_PERIODO_ANUAL)
INNER JOIN META_POA_APORTE MPA ON (MPA.APORTE_ESTRATEGICO = APD.APORTE_ESTRATEGICO)
INNER JOIN META_POA_EVALUACION MPE ON (MPE.META_POA = MPA.META_POA)
INNER JOIN META_POA MP ON (MP.ID_META_POA = MPE.META_POA)
INNER JOIN OBJETIVO_POA OP ON (OP.ID_OBJETIVO_POA = MP.OBJETIVO_POA)
INNER JOIN PLAN_OPERATIVO PO ON (PO.ID_PLAN_OPERATIVO = OP.PLAN_OPERATIVO AND PO.PERIODO_ANUAL = PA.ID_PERIODO_ANUAL)
INNER JOIN EVALUACION_OPERATIVA EO ON (EO.PLAN_OPERATIVO = PO.ID_PLAN_OPERATIVO AND EO.ETAPA_PLAN = MPE.ETAPA_PLAN)
INNER JOIN ETAPA_PLAN EP ON (EP.ID_ETAPA_PLAN = EO.ETAPA_PLAN)
WHERE
PA.ID_PERIODO_ANUAL IN (SELECT DISTINCT PERIODO_ANUAL FROM APORTE_PAE_DISTRIBUCION)
AND APD.APORTE_ESTRATEGICO = :id_aporte_estrategico
GROUP BY PA.ANO, APD.APORTE_ESTRATEGICO, MPE.ETAPA_PLAN, EP.FECHA_FINAL_EVALUACION
ORDER BY APD.APORTE_ESTRATEGICO, PA.ANO ASC
) EJECUCION ON (EJECUCION.ANO = PA.ANO AND EJECUCION.APORTE_ESTRATEGICO= APD.APORTE_ESTRATEGICO)
WHERE
PA.ID_PERIODO_ANUAL IN (SELECT DISTINCT PERIODO_ANUAL FROM APORTE_PAE_DISTRIBUCION)
AND APE.ID_APORTE_ESTRATEGICO = :id_aporte_estrategico
AND ACE.ID_ACCION_ESTRATEGICA = :id_accion_estrategica;