Existing store procedure untuk get graph, body, data table
This commit is contained in:
73
sp_rpt_exe_sum_table_pola_kebiasaan.txt
Normal file
73
sp_rpt_exe_sum_table_pola_kebiasaan.txt
Normal file
@@ -0,0 +1,73 @@
|
||||
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
|
||||
Reference in New Issue
Block a user