Files
existing-rpt-executive-summary/sp_rpt_exe_sum_table_pola_kebiasaan.txt

74 lines
2.7 KiB
Plaintext

BEGIN
WITH order_riwayat AS (
SELECT
Mgm_RiwayatMcu_RiwayatID,
Mgm_RiwayatMgm_HeaderID,
Mgm_HeaderIsNormal
FROM
one_etl.mgm_riwayat
JOIN one_etl.mgm_header
ON Mgm_RiwayatMgm_HeaderID = Mgm_HeaderID
WHERE
Mgm_HeaderMgm_McuID = PID
AND Mgm_RiwayatMcu_RiwayatGroupID = 6
),
order_location AS (
SELECT DISTINCT
COALESCE(NULLIF(Mgm_HeaderM_PatientLocation, ''), '-') AS location,
Mgm_HeaderID
FROM
one_etl.mgm_header
WHERE
Mgm_HeaderMgm_McuID = PID
),
total_peserta AS (
SELECT
COALESCE(NULLIF(Mgm_HeaderM_PatientLocation, ''), '-') AS location,
COUNT(DISTINCT Mgm_HeaderT_OrderHeaderID) AS total_peserta
FROM
one_etl.mgm_header
WHERE
Mgm_HeaderMgm_McuID = PID
AND Mgm_HeaderIsActive = 'Y'
GROUP BY
COALESCE(NULLIF(Mgm_HeaderM_PatientLocation, ''), '-')
),
Counts AS (
SELECT
ol.location AS site_perusahaan,
-- Hitung ketika Mgm_HeaderIsNormal = 'Y'
COUNT(CASE WHEN orw.Mgm_RiwayatMcu_RiwayatID = 149 AND (orw.Mgm_HeaderIsNormal = 'Y' OR orw.Mgm_HeaderIsNormal = 'N') THEN 1 END) AS Tidak_Merokok_Y,
COUNT(CASE WHEN orw.Mgm_RiwayatMcu_RiwayatID IN (150, 151, 152, 153) AND (orw.Mgm_HeaderIsNormal = 'Y' OR orw.Mgm_HeaderIsNormal = 'N') THEN 1 END) AS Merokok_Y,
COUNT(CASE WHEN orw.Mgm_RiwayatMcu_RiwayatID = 141 AND (orw.Mgm_HeaderIsNormal = 'Y' OR orw.Mgm_HeaderIsNormal = 'N') THEN 1 END) AS Tidak_Minum_Alkohol_Y,
COUNT(CASE WHEN orw.Mgm_RiwayatMcu_RiwayatID IN (142, 143, 144) AND (orw.Mgm_HeaderIsNormal = 'Y' OR orw.Mgm_HeaderIsNormal = 'N') THEN 1 END) AS Minum_Alkohol_Y,
COUNT(CASE WHEN orw.Mgm_RiwayatMcu_RiwayatID = 145 AND (orw.Mgm_HeaderIsNormal = 'Y' OR orw.Mgm_HeaderIsNormal = 'N') THEN 1 END) AS Tidak_Rutin_Olahraga_Y,
COUNT(CASE WHEN orw.Mgm_RiwayatMcu_RiwayatID IN (146, 147, 148) AND (orw.Mgm_HeaderIsNormal = 'Y' OR orw.Mgm_HeaderIsNormal = 'N') THEN 1 END) AS Olahraga_Y,
-- Hitung Total pasien
tp.total_peserta AS total_peserta
FROM
order_location ol
LEFT JOIN order_riwayat orw ON ol.Mgm_HeaderID = orw.Mgm_RiwayatMgm_HeaderID
LEFT JOIN total_peserta tp ON ol.location = tp.location
GROUP BY
ol.location, tp.total_peserta
)
SELECT
site_perusahaan,
Tidak_Merokok_Y,
Merokok_Y,
(total_peserta - (Tidak_Merokok_Y+Merokok_Y)) AS Merokok_NA,
Tidak_Minum_Alkohol_Y,
Minum_Alkohol_Y,
(total_peserta - (Tidak_Minum_Alkohol_Y+Minum_Alkohol_Y)) AS Alkohol_NA,
Tidak_Rutin_Olahraga_Y,
Olahraga_Y,
(total_peserta - (Tidak_Rutin_Olahraga_Y+Olahraga_Y)) AS Olahraga_NA,
total_peserta AS Peserta
FROM
Counts
ORDER BY
site_perusahaan;
END