Postingan lainnya
Memunculkan data dari 2 tanggal yang berbeda dalam 1 tabel sql?
jadi ada 4 tipe pasien yaitu bpjs, jampersal, sktm, dan umum. terus disitu ada periodenya. saya ingin nampilin jumlah_insentif, jumlah_farmasi, jumlah_usg, jumlah_diterima dari masing masing tipe_pasien tapi dalam periode yang berbeda, misalnya bpjs periode Mei 2020, jampersal April 2020, dst tapi dimunculin dalam 1 tabel. apa mungkin?
SELECT insentif.nip, insentif.periode as periode, nama_perawat, id_jabatan, nama_kepegawaian,
SUM(CASE WHEN skor.periode='2020-05-01'
THEN skor.skor_bpjs ELSE null END) AS skor_bpjs,
SUM(CASE WHEN id_tipe_pasien = 'bpjs'
THEN CASE WHEN insentif.periode='2020-05-01' THEN insentif.jumlah_insentif ELSE null END ELSE null END) AS bpjs_insentif,
SUM(CASE WHEN id_tipe_pasien = 'bpjs'
THEN CASE WHEN insentif.periode='2020-05-01' THEN insentif.jumlah_farmasi ELSE null END ELSE null END) AS bpjs_farmasi,
SUM(CASE WHEN id_tipe_pasien = 'bpjs'
THEN CASE WHEN insentif.periode='2020-05-01' THEN insentif.jumlah_usg ELSE null END ELSE null END) AS bpjs_usg,
SUM(CASE WHEN id_tipe_pasien = 'bpjs'
THEN CASE WHEN insentif.periode='2020-05-01' THEN insentif.pph_21 ELSE null END ELSE null END) AS bpjs_pph21,
SUM(CASE WHEN id_tipe_pasien = 'bpjs'
THEN CASE WHEN insentif.periode='2020-05-01' THEN insentif.jumlah_diterima ELSE null END ELSE null END) AS bpjs_jumlah_diterima,
SUM(CASE WHEN skor.periode='2020-05-01'
THEN skor.skor_jampersal ELSE null END) AS skor_jampersal,
SUM(CASE WHEN id_tipe_pasien = 'jampersal'
THEN CASE WHEN insentif.periode='2020-05-01' THEN insentif.jumlah_insentif ELSE null END ELSE null END) AS jampersal_insentif,
SUM(CASE WHEN id_tipe_pasien = 'jampersal'
THEN CASE WHEN insentif.periode='2020-05-01' THEN insentif.jumlah_farmasi ELSE null END ELSE null END) AS jampersal_farmasi,
SUM(CASE WHEN id_tipe_pasien = 'jampersal'
THEN CASE WHEN insentif.periode='2020-05-01' THEN insentif.jumlah_usg ELSE null END ELSE null END) AS jampersal_usg,
SUM(CASE WHEN id_tipe_pasien = 'jampersal'
THEN CASE WHEN insentif.periode='2020-05-01' THEN insentif.pph_21 ELSE null END ELSE null END) AS jampersal_pph21,
SUM(CASE WHEN id_tipe_pasien = 'jampersal'
THEN CASE WHEN insentif.periode='2020-05-01' THEN insentif.jumlah_diterima ELSE null END ELSE null END) AS jampersal_jumlah_diterima,
SUM(CASE WHEN skor.periode='2020-04-01'
THEN skor.skor_sktm ELSE null END) AS skor_sktm,
SUM(CASE WHEN id_tipe_pasien = 'sktm'
THEN CASE WHEN insentif.periode='2020-04-01' THEN insentif.jumlah_insentif ELSE null END ELSE null END) AS sktm_insentif,
SUM(CASE WHEN id_tipe_pasien = 'sktm'
THEN CASE WHEN insentif.periode='2020-04-01' THEN insentif.jumlah_farmasi ELSE null END ELSE null END) AS sktm_farmasi,
SUM(CASE WHEN id_tipe_pasien = 'sktm'
THEN CASE WHEN insentif.periode='2020-04-01' THEN insentif.jumlah_usg ELSE null END ELSE null END) AS sktm_usg,
SUM(CASE WHEN id_tipe_pasien = 'sktm'
THEN CASE WHEN insentif.periode='2020-04-01' THEN insentif.pph_21 ELSE null END ELSE null END) AS sktm_pph21,
SUM(CASE WHEN id_tipe_pasien = 'sktm'
THEN CASE WHEN insentif.periode='2020-04-01' THEN insentif.jumlah_diterima ELSE null END ELSE null END) AS sktm_jumlah_diterima,
SUM(CASE WHEN skor.periode='2019-12-01'
THEN skor.skor_umum ELSE null END) AS skor_umum,
SUM(CASE WHEN id_tipe_pasien = 'umum'
THEN CASE WHEN insentif.periode='2019-12-01' THEN insentif.jumlah_insentif ELSE null END ELSE null END) AS umum_insentif,
SUM(CASE WHEN id_tipe_pasien = 'umum'
THEN CASE WHEN insentif.periode='2019-12-01' THEN insentif.jumlah_farmasi ELSE null END ELSE null END) AS umum_farmasi,
SUM(CASE WHEN id_tipe_pasien = 'umum'
THEN insentif.jumlah_usg ELSE null END) AS umum_usg,
SUM(CASE WHEN id_tipe_pasien = 'umum'
THEN CASE WHEN insentif.periode='2019-12-01' THEN insentif.pph_21 ELSE null END ELSE null END) AS umum_pph21,
SUM(CASE WHEN id_tipe_pasien = 'umum'
THEN CASE WHEN insentif.periode='2019-12-01' THEN insentif.jumlah_diterima ELSE null END ELSE null END) AS umum_jumlah_diterima
FROM insentif
JOIN perawat ON perawat.nip=insentif.nip
JOIN skor ON skor.nip=insentif.nip
JOIN jenis_kepegawaian ON jenis_kepegawaian.id_kepegawaian=perawat.id_kepegawaian
GROUP BY insentif.nip
saya udah coba dengan sql diatas tapi hasil yang ditampilin itu ga sesuai dengan apa yang ada di db, hasilnya itu malah 3x lebih besar dari yang di db. hasilnya query diatas kaya gini
data yang diharapkan kira kira seperti ini.
mohon pencerahannya suhu. terimakasih
Tanggapan
Bertanya soal Query, agan perlu menyertakan juga:
- Data awal (table structure dan data-nya)
- Query yang sudah dilakukan (seperti diatas)
- Hasil query yang diharapkan - biar bisa dicek dengan data awal.
seperti: https://4y25cw.ch.files.1drv.com/y4mchxNeFOD_Q4ZchyexyixvcJb3NgoOwNGwoRtLVb13JYXYFidjU1Rg25Qf8NKfAxZ7lbgoJBhAmNpmmQWhppBPeycurmyA5Xx96-jiZGPOUmsga8zX2RZRUzThL7YTt1MNMvzNz4qSHWZHT1S-DrRuyHdybNqQRTj--rDfz7ShEg8ifWT4EiYX7t5CjhZtvXe?width=1049&height=369&cropmode=none
Di query agan ada beberapa table; mungkin baiknya di sertakan juga. data dummy saja. Dengan adanya data ini, hasil query-nya bisa di cek balik.
Belum ada Jawaban. Jadi yang pertama Jawaban
Login untuk ikut Jawaban