You are on page 1of 3

set ANSI_NULLS ON

set QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[Lap_Apotik_Rajal_sp] @tahun varchar(4),@bulan varchar(2)


AS
begin
select convert(varchar(10),tgl,103) tgl,'APS' jenis,
sum(gen_jml) gen_jml,sum(gen_rp) gen_rp,
sum(paten_jml) paten_jml,
sum(paten_rp) paten_rp,
sum(narkotika_jml) narkotika_jml,
sum(narkotika_rp) narkotika_rp,
sum(psikotropika_jml) psikotropika_jml,
sum(psikotropika_rp) psikotropika_rp,
sum(bhp_rp) bhp_rp,
sum(alkes_rp) alkes_rp,
sum(jasa) jasa_rp,
sum(embalace) embalace_rp,
sum(jasa+embalace) tuslah
from (
select a.tgl,a.no_transaksi,
(case when b.generic='3' then count(distinct(a.no_transaksi)) else 0 end) gen_jm
l,
sum(case when b.generic='3' then a.qty*(a.faktor*a.harga_s-a.diskon_rp)*(100+a.p
pn)/100 else 0 end) gen_rp,
(case when b.generic='1' then count(distinct(a.no_transaksi)) else 0 end) paten_
jml,
sum(case when b.generic='1' then a.qty*(a.faktor*a.harga_s-a.diskon_rp)*(100+a.p
pn)/100 else 0 end) paten_rp,
(case when b.generic='2' then count(distinct(a.no_transaksi)) else 0 end) narkot
ika_jml,
sum(case when b.generic='2' then a.qty*(a.faktor*a.harga_s-a.diskon_rp) else 0 e
nd)*(100+a.ppn)/100 narkotika_rp,
(case when b.generic='4' then count(distinct(a.no_transaksi)) else 0 end) psikot
ropika_jml,
sum(case when b.generic='4' then a.qty*(a.faktor*a.harga_s-a.diskon_rp) else 0 e
nd)*(100+a.ppn)/100 psikotropika_rp,
sum(case when b.generic='6' then a.qty*(a.faktor*a.harga_s-a.diskon_rp) else 0 e
nd)*(100+a.ppn)/100 bhp_rp,
sum(case when b.generic='5' then a.qty*(a.faktor*a.harga_s-a.diskon_rp) else 0 e
nd)*(100+a.ppn)/100 alkes_rp,
isnull(d.jasa,0) jasa,isnull(d.embalace,0) embalace
from t_layanan_brg a inner join m_brg b on a.kd_brg=b.kd_brg
left join brg_subkelompok c on b.kd_subkelompok=c.kd_subkelompok
left join t_resep d on a.no_transaksi=d.no_transaksi
left join t_kunjungan e on a.no_reg=e.no_reg
where datepart(yy,a.tgl) = @tahun and datepart(mm,a.tgl) = @bulan
and e.kd_tujuan is null

group by a.tgl,a.no_transaksi,a.ppn,b.generic,
d.jasa,d.embalace) xx
group by convert(varchar(10),tgl,103)
UNION
select convert(varchar(10),tgl,103) tgl,'IGD' jenis,
sum(gen_jml) gen_jml,sum(gen_rp) gen_rp,
sum(paten_jml) paten_jml,
sum(paten_rp) paten_rp,
sum(narkotika_jml) narkotika_jml,
sum(narkotika_rp) narkotika_rp,
sum(psikotropika_jml) psikotropika_jml,
sum(psikotropika_rp) psikotropika_rp,
sum(bhp_rp) bhp_rp,
sum(alkes_rp) alkes_rp,
sum(jasa) jasa_rp,
sum(embalace) embalace_rp,
sum(jasa+embalace) tuslah
from (
select a.tgl,a.no_transaksi,
(case when b.generic='3' then count(distinct(a.no_transaksi)) else 0 end) gen_jm
l,
sum(case when b.generic='3' then a.qty*(a.faktor*a.harga_s-a.diskon_rp)*(100+a.p
pn)/100 else 0 end) gen_rp,
(case when b.generic='1' then count(distinct(a.no_transaksi)) else 0 end) paten_
jml,
sum(case when b.generic='1' then a.qty*(a.faktor*a.harga_s-a.diskon_rp)*(100+a.p
pn)/100 else 0 end) paten_rp,
(case when b.generic='2' then count(distinct(a.no_transaksi)) else 0 end) narkot
ika_jml,
sum(case when b.generic='2' then a.qty*(a.faktor*a.harga_s-a.diskon_rp) else 0 e
nd)*(100+a.ppn)/100 narkotika_rp,
(case when b.generic='4' then count(distinct(a.no_transaksi)) else 0 end) psikot
ropika_jml,
sum(case when b.generic='4' then a.qty*(a.faktor*a.harga_s-a.diskon_rp) else 0 e
nd)*(100+a.ppn)/100 psikotropika_rp,
sum(case when b.generic='6' then a.qty*(a.faktor*a.harga_s-a.diskon_rp) else 0 e
nd)*(100+a.ppn)/100 bhp_rp,
sum(case when b.generic='5' then a.qty*(a.faktor*a.harga_s-a.diskon_rp) else 0 e
nd)*(100+a.ppn)/100 alkes_rp,
isnull(d.jasa,0) jasa,isnull(d.embalace,0) embalace
from t_layanan_brg a inner join m_brg b on a.kd_brg=b.kd_brg
left join brg_subkelompok c on b.kd_subkelompok=c.kd_subkelompok
left join t_resep d on a.no_transaksi=d.no_transaksi
left join t_kunjungan e on a.no_reg=e.no_reg
where datepart(yy,a.tgl) = @tahun and datepart(mm,a.tgl) = @bulan
and e.kd_tujuan ='1' AND dbo.fn_unit_KUNJUNGAN(d.no_reg)like '%IGD-NONBEDAH%'
group by a.tgl,a.no_transaksi,a.ppn,b.generic,
d.jasa,d.embalace) xx
group by convert(varchar(10),tgl,103)
UNION
select convert(varchar(10),tgl,103) tgl,'POLI' jenis,
sum(gen_jml) gen_jml,sum(gen_rp) gen_rp,
sum(paten_jml) paten_jml,
sum(paten_rp) paten_rp,
sum(narkotika_jml) narkotika_jml,
sum(narkotika_rp) narkotika_rp,
sum(psikotropika_jml) psikotropika_jml,
sum(psikotropika_rp) psikotropika_rp,

sum(bhp_rp) bhp_rp,
sum(alkes_rp) alkes_rp,
sum(jasa) jasa_rp,
sum(embalace) embalace_rp,
sum(jasa+embalace) tuslah
from (
select a.tgl,a.no_transaksi,
(case when b.generic='3' then count(distinct(a.no_transaksi)) else 0 end) gen_jm
l,
sum(case when b.generic='3' then a.qty*(a.faktor*a.harga_s-a.diskon_rp)*(100+a.p
pn)/100 else 0 end) gen_rp,
(case when b.generic='1' then count(distinct(a.no_transaksi)) else 0 end) paten_
jml,
sum(case when b.generic='1' then a.qty*(a.faktor*a.harga_s-a.diskon_rp)*(100+a.p
pn)/100 else 0 end) paten_rp,
(case when b.generic='2' then count(distinct(a.no_transaksi)) else 0 end) narkot
ika_jml,
sum(case when b.generic='2' then a.qty*(a.faktor*a.harga_s-a.diskon_rp) else 0 e
nd)*(100+a.ppn)/100 narkotika_rp,
(case when b.generic='4' then count(distinct(a.no_transaksi)) else 0 end) psikot
ropika_jml,
sum(case when b.generic='4' then a.qty*(a.faktor*a.harga_s-a.diskon_rp) else 0 e
nd)*(100+a.ppn)/100 psikotropika_rp,
sum(case when b.generic='6' then a.qty*(a.faktor*a.harga_s-a.diskon_rp) else 0 e
nd)*(100+a.ppn)/100 bhp_rp,
sum(case when b.generic='5' then a.qty*(a.faktor*a.harga_s-a.diskon_rp) else 0 e
nd)*(100+a.ppn)/100 alkes_rp,
isnull(d.jasa,0) jasa,isnull(d.embalace,0) embalace
from t_layanan_brg a inner join m_brg b on a.kd_brg=b.kd_brg
left join brg_subkelompok c on b.kd_subkelompok=c.kd_subkelompok
left join t_resep d on a.no_transaksi=d.no_transaksi
left join t_kunjungan e on a.no_reg=e.no_reg
where datepart(yy,a.tgl) = @tahun and datepart(mm,a.tgl) = @bulan
and e.kd_tujuan='1' AND NOT e.kd_unit_tjn='D020000'
group by a.tgl,a.no_transaksi,a.ppn,b.generic,
d.jasa,d.embalace) xx
group by convert(varchar(10),tgl,103)
order by tgl
end

/*
select*from t_layanan_brg a where a.tgl>(GETDATE()-10) and
not exists
(select 1 from t_resep z where z.no_transaksi=a.no_transaksi)
*/

You might also like