You are on page 1of 6

DROP PROCEDURE ppdd_baja;

CREATE PROCEDURE ppdd_baja(


IN idppdd varchar(6),
IN ano varchar(4),
IN eess varchar(10)
)
BEGIN
CASE idppdd
WHEN '000' THEN
SELECT MONTH(baja_fecbaj) AS 'MES', count(*) AS 'TOTAL' FROM fac_baja_aseg INNER
JOIN dim_eess ON id_eess_baja = id_eess WHERE YEAR(baja_fecbaj) = ano GROUP BY
MONTH(baja_fecbaj) ORDER BY 1;
WHEN '999' THEN
SELECT MONTH(baja_fecbaj) AS 'MES', count(*) AS 'TOTAL' FROM fac_baja_aseg INNER
JOIN dim_eess ON id_eess_baja = id_eess WHERE id_eess_baja = LPAD(eess,10,'0') and
YEAR(baja_fecbaj) = ano GROUP BY MONTH(baja_fecbaj) ORDER BY 1;
ELSE
SELECT MONTH(baja_fecbaj) AS 'MES', count(*) AS 'TOTAL' FROM fac_baja_aseg INNER
JOIN dim_eess ON id_eess_baja = id_eess WHERE eess_ppdd = idppdd and
YEAR(baja_fecbaj) = ano GROUP BY eess_ppdd, MONTH(baja_fecbaj) ORDER BY 2;
END CASE;
END;

CALL ppdd_baja('999','2020','1009');

DROP PROCEDURE ppdd_atenciones;

CREATE PROCEDURE ppdd_atenciones(


IN idppdd varchar(6),
IN ano varchar(4),
IN eess varchar(10)
)
BEGIN
CASE idppdd
WHEN '000' THEN
SELECT ate_my_periodo, ate_my_mes, COUNT(*) AS 'Atenciones',COUNT(DISTINCT
id_my_asegurado) AS 'Atendidos' FROM fac_atencion_mysql WHERE ate_my_periodo = ano
GROUP BY ate_my_periodo, ate_my_mes ORDER BY 2;
WHEN '999' THEN
SELECT ate_my_periodo, ate_my_mes, COUNT(*) AS 'Atenciones',COUNT(DISTINCT
id_my_asegurado) AS 'Atendidos' FROM fac_atencion_mysql WHERE id_my_eess =
LPAD(eess,10,'0') AND ate_my_periodo = ano GROUP BY ate_my_periodo, ate_my_mes
ORDER BY 2;
ELSE
SELECT ate_my_periodo, ate_my_mes, COUNT(*) AS 'Atenciones',COUNT(DISTINCT
id_my_asegurado) AS 'Atendidos' FROM fac_atencion_mysql WHERE id_my_ppdd = idppdd
AND ate_my_periodo = ano GROUP BY ate_my_periodo, ate_my_mes ORDER BY 2;
END CASE;
END;

CALL ppdd_atenciones('999','2019','1009');

DROP PROCEDURE ppdd_planes;

CREATE PROCEDURE ppdd_planes(


IN idppdd varchar(6),
IN eess varchar(10),
IN odsis varchar(3)
)
BEGIN
CASE idppdd
WHEN '000' THEN
SELECT aseg_lote, aseg_plan, count(*) AS 'TOTAL' FROM dim_asegurados INNER JOIN
dim_eess ON id_eess_aseg = id_eess WHERE eess_odsis = odsis and aseg_fecbaj IS NULL
GROUP BY aseg_lote, aseg_plan ORDER BY 1;
WHEN '999' THEN
SELECT aseg_lote, aseg_plan, count(*) AS 'TOTAL' FROM dim_asegurados INNER JOIN
dim_eess ON id_eess_aseg = id_eess WHERE eess_odsis = odsis and id_eess_aseg =
LPAD(eess,10,'0') and aseg_fecbaj IS NULL GROUP BY aseg_lote, aseg_plan ORDER BY
1;
ELSE
SELECT aseg_lote, aseg_plan, count(*) AS 'TOTAL' FROM dim_asegurados INNER JOIN
dim_eess ON id_eess_aseg = id_eess WHERE eess_odsis = odsis and eess_ppdd = idppdd
and aseg_fecbaj IS NULL GROUP BY aseg_lote, aseg_plan ORDER BY 1;
END CASE;
END;

CALL ppdd_planes('999','1009','026');

DROP PROCEDURE ppdd_afiliaciones;

CREATE PROCEDURE ppdd_afiliaciones(


IN idppdd varchar(6),
IN ano varchar(4),
IN eess varchar(10),
IN odsis varchar(26)
)
BEGIN
CASE idppdd
WHEN '000' THEN
SELECT CONCAT(YEAR(aseg_fecafi), LPAD(MONTH(aseg_fecafi), 2, '0')) AS 'DATE',
COUNT(*) AS 'TOTAL' FROM dim_asegurados INNER JOIN dim_eess ON id_eess_aseg =
id_eess WHERE eess_odsis = odsis and YEAR(aseg_fecafi) <= ano and aseg_fecbaj IS
NULL GROUP BY concat(YEAR(aseg_fecafi),MONTH(aseg_fecafi)) ORDER BY 1;
WHEN '999' THEN
SELECT CONCAT(YEAR(aseg_fecafi), LPAD(MONTH(aseg_fecafi), 2, '0')) AS 'DATE',
COUNT(*) AS 'TOTAL' FROM dim_asegurados INNER JOIN dim_eess ON id_eess_aseg =
id_eess WHERE eess_odsis = odsis and id_eess_aseg = LPAD(eess,10,'0') and
YEAR(aseg_fecafi) <= ano and aseg_fecbaj IS NULL GROUP BY
concat(YEAR(aseg_fecafi),MONTH(aseg_fecafi)) ORDER BY 1;
ELSE
SELECT CONCAT(YEAR(aseg_fecafi), LPAD(MONTH(aseg_fecafi), 2, '0')) AS 'DATE',
COUNT(*) AS 'TOTAL' FROM dim_asegurados INNER JOIN dim_eess ON id_eess_aseg =
id_eess WHERE eess_odsis = odsis and eess_ppdd = idppdd and YEAR(aseg_fecafi) <=
ano and aseg_fecbaj IS NULL GROUP BY concat(YEAR(aseg_fecafi),MONTH(aseg_fecafi))
ORDER BY 1;
END CASE;
END;

CALL ppdd_afiliaciones('999','2020','1009','026');
DROP PROCEDURE ppdd_categorias;

CREATE PROCEDURE ppdd_categorias(


IN idppdd varchar(6),
IN odsis varchar(3)
)
BEGIN
IF idppdd = '000' THEN
SELECT cat_abrev, COUNT(*) AS 'total' FROM dim_eess INNER JOIN dim_categorias ON
eess_cat = eess_cate WHERE eess_odsis = odsis GROUP BY cat_abrev;
ELSE
SELECT cat_abrev, COUNT(*) AS 'total' FROM dim_eess INNER JOIN dim_categorias ON
eess_cat = eess_cate WHERE eess_ppdd = idppdd and eess_odsis = odsis GROUP BY
cat_abrev;
END IF;
END;

CALL ppdd_categorias('854','026');

DROP PROCEDURE ppdd_poblacion;

CREATE PROCEDURE ppdd_poblacion(


IN idppdd varchar(6),
IN eess varchar(10)
)
BEGIN
CASE idppdd
WHEN '000' THEN
SELECT SUM(pob_cant) AS 'TOTAL' FROM dim_poblacion INNER JOIN dim_eess ON
id_eess_pob = id_eess;
WHEN '999' THEN
SELECT SUM(pob_cant) AS 'TOTAL' FROM dim_poblacion INNER JOIN dim_eess ON
id_eess_pob = id_eess WHERE id_eess_pob = LPAD(eess,10,'0');
ELSE
SELECT SUM(pob_cant) AS 'TOTAL' FROM dim_poblacion INNER JOIN dim_eess ON
id_eess_pob = id_eess WHERE eess_ppdd = idppdd;
END CASE;
END;

CALL ppdd_poblacion('854','1009');

DROP PROCEDURE ppdd_paquetes;

CREATE PROCEDURE ppdd_paquetes(


IN idppdd varchar(6),
IN ano varchar(4),
IN mes varchar(2)
)
BEGIN
SELECT id_ppdd, paq_ano, paq_mes, paq_num, id_paquete, paq_fec, detp_cargados,
detp_rc, detp_duplicados, detp_total, detp_version FROM fac_paquetes INNER JOIN
dim_detpaque ON id_paquete = id_paque WHERE id_ppdd = idppdd AND paq_ano = ano AND
paq_mes = mes ORDER BY 2, 3, 4 ASC;
END;

CALL ppdd_paquetes('853','2019','02');

DROP PROCEDURE ppdd_paquetesARF;

CREATE PROCEDURE ppdd_paquetesARF(


IN idppdd varchar(6),
IN ano varchar(4),
IN mes varchar(2)
)
BEGIN
SELECT DATE_FORMAT(paq_fec,'%Y-%m-%d') AS 'paq_fec', paq_resp FROM dim_paquetes
WHERE SUBSTRING(id_paq,1,4) = ano AND SUBSTRING(id_paq,5,2) = mes AND paq_ppdd =
idppdd ORDER BY paq_fec ASC;
END;

CALL ppdd_paquetesARF('11811','2020','08');

DROP PROCEDURE ppdd_dias;

CREATE PROCEDURE ppdd_dias(


IN digi varchar(9),
IN idppdd varchar(6),
IN ano varchar(4),
IN mes varchar(2)
)
BEGIN
CASE idppdd
WHEN '000' THEN
SELECT DATEDIFF(ate_my_feccrea,ate_my_fecate) AS 'Dias', count(*) AS 'Total' FROM
fac_atencion_mysql WHERE ate_my_periodo = ano AND ate_my_mes = mes GROUP BY
DATEDIFF(ate_my_feccrea,ate_my_fecate);
ELSE
IF digi = '00000000' THEN
SELECT DATEDIFF(ate_my_feccrea,ate_my_fecate) AS 'Dias', count(*) AS 'Total' FROM
fac_atencion_mysql WHERE id_my_ppdd = idppdd AND ate_my_periodo = ano AND
ate_my_mes = mes GROUP BY DATEDIFF(ate_my_feccrea,ate_my_fecate);
ELSE
SELECT DATEDIFF(ate_my_feccrea,ate_my_fecate) AS 'Dias', count(*) AS 'Total' FROM
fac_atencion_mysql WHERE id_my_digitador = digi AND id_my_ppdd = idppdd AND
ate_my_periodo = ano AND ate_my_mes = mes GROUP BY
DATEDIFF(ate_my_feccrea,ate_my_fecate);
END IF;
END CASE;
END;

CALL ppdd_dias('00000000','853','2020','01');

DROP PROCEDURE ppdd_periodo;

CREATE PROCEDURE ppdd_periodo(


IN digi varchar(9),
IN idppdd varchar(6),
IN ano varchar(4),
IN mes varchar(2)
)
BEGIN
CASE idppdd
WHEN '000' THEN
SELECT concat(YEAR(ate_my_fecate),'-',lpad(MONTH(ate_my_fecate),2,'0')) AS
'Periodo', count(*) AS 'Total' FROM fac_atencion_mysql WHERE ate_my_periodo = ano
AND ate_my_mes = mes GROUP BY MONTH(ate_my_fecate) ORDER BY 1 DESC;
ELSE
IF digi = '00000000' THEN
SELECT concat(YEAR(ate_my_fecate),'-',lpad(MONTH(ate_my_fecate),2,'0')) AS
'Periodo', count(*) AS 'Total' FROM fac_atencion_mysql WHERE ate_my_periodo = ano
AND ate_my_mes = mes AND id_my_ppdd = idppdd GROUP BY MONTH(ate_my_fecate) ORDER BY
1 DESC;
ELSE
SELECT concat(YEAR(ate_my_fecate),'-',lpad(MONTH(ate_my_fecate),2,'0')) AS
'Periodo', count(*) AS 'Total' FROM fac_atencion_mysql WHERE ate_my_periodo = ano
AND ate_my_mes = mes AND id_my_ppdd = idppdd AND id_my_digitador = digi GROUP BY
MONTH(ate_my_fecate) ORDER BY 1 DESC;
END IF;
END CASE;
END;

CALL ppdd_periodo('00000000','853','2020','08');

DROP PROCEDURE ppdd_digitadores;

CREATE PROCEDURE ppdd_digitadores(


IN idppdd varchar(6),
IN ano varchar(4),
IN mes varchar(2)
)
BEGIN
IF idppdd = '000' THEN
SELECT id_my_digitador, digi_datos, count(*) AS 'Total', digi_estado FROM
fac_atencion_mysql INNER JOIN dim_digitador ON id_my_digitador = id_digitador WHERE
ate_my_periodo = ano AND ate_my_mes = mes GROUP BY id_my_digitador ORDER BY 3 DESC;
ELSE
SELECT id_my_digitador, digi_datos, count(*) AS 'Total', digi_estado FROM
fac_atencion_mysql INNER JOIN dim_digitador ON id_my_digitador = id_digitador WHERE
ate_my_periodo = ano AND ate_my_mes = mes AND id_my_ppdd = idppdd GROUP BY
id_my_digitador ORDER BY 3 DESC;
END IF;
END;

CALL ppdd_digitadores('000','2020','08');

DROP PROCEDURE ppdd_aplicativo;

CREATE PROCEDURE ppdd_aplicativo(


IN idppdd varchar(6)
)
BEGIN
SELECT det_aplic, det_vers, det_act, DATE_FORMAT(det_fecact,'%Y-%m-%d') AS
'det_fecact', det_aus, DATE_FORMAT(det_fecaus,'%Y-%m-%d') AS 'det_fecaus', det_ret,
DATE_FORMAT(det_fecret,'%Y-%m-%d') AS 'det_fecret' FROM fac_aplicativo WHERE
id_ppdd = idppdd ORDER BY apl_id DESC LIMIT 1;
END;

CALL ppdd_aplicativo('853');

You might also like