|
需要通过PLSQL链接医保数据库、命令执行:
----销售明细表
select distinct a.INSTITUTIONCODE as 门店编号,
a.INSTITUTIONNAME as 门店名称,
to_char(a.erpsaleno) as 零售流水号,
h.accdate as 开单日期,
h.finaltime as 开单时间,
f_get_username(d.saler) as 营业员,
f_get_username(h.payee) as 收银员,
b.warecode as 货号,
b.CENTERITEMCODE as 药品国家医保编码,
b.warename as 商品名及通用名,
b.specs as 规格,
b.MANUFACTURER as 生产单位,
b.CHARGEUNIT as 单位,
d.wareqty as 数量,
round(d.wareqty*d.netprice,2) as 金额,
d.makeno as 批号,
d.invalidate as 效期,
i.makedate as 生产日期,
d.netprice as 零售价,
f_get_classname('03',d.wareid,h.compid) as 剂型
from t_yby_order_h a
left join t_yby_order_d b on a.orderno=b.orderno
left join t_sale_h h on a.erpsaleno=h.saleno and h.compid=2
left join t_ware t on b.warecode=t.warecode and t.compid=2
left join t_sale_d d on h.saleno=d.saleno and a.erpsaleno=d.saleno
and t.wareid=d.wareid
left join t_store_i i on d.wareid=i.wareid and d.batid=i.batid
and h.compid=i.compid
where a.INSTITUTIONCODE='P611000000000XXXX' and
to_char( h.accdate,'yyyy-mm-dd')>='2023-01-01'
and to_char( h.accdate,'yyyy-mm-dd')<='2023-12-31'
order by h.accdate,to_char(a.erpsaleno);
-----进销存
select 'P62XXXXXXXX' as 医保机构编号,
'XXXXXXXXXXXXXXX店' as 门店名称,
to_char( w.warecode ) as 货号,
max(w.warename) as 商品名及通用名,
max(w.warespec) as 商品规格,
max(w.wareunit) as 单位,
to_char( max(w.INSURANCENO) ) as 药品国家医保编码,
nvl(max(qc.qckc),0) as 期初库存,
sum(r.inqty) as 入库数量,
sum(r.outqty) as 出库数量,
nvl(max(qm.qmkc),0) as 期末库存
from t_item_in_out_remain r
left join t_ware w on r.wareid=w.wareid and r.compid=w.compid
left join (select wareid,sum(wareqty) as qckc from t_store_d_bak
where busno=201XXXX and period='202201'
group by wareid) qc
on r.wareid=qc.wareid
left join (select wareid,sum(wareqty) as qmkc from t_store_d_bak
where busno=201XXX and period='202412'
group by wareid) qm
on r.wareid=qm.wareid
where r.busno='201XXX' and w.isinsurance=1 and
to_char( r.execdate,'yyyy-mm-dd')>='2023-01-01'
and to_char(r.execdate,'yyyy-mm-dd')<='2023-12-31'
and r.compid=2
and r.billcode not in ('MDACC')
group by w.warecode;
-----医保对账表
select c.PsnName as 人员姓名,
to_char(ord.OutSaleNo) as 身份证,
to_char(ord.OutSaleNo) as 系统流水号,
to_char(c.psnno) as 人员信息编号,
to_char(c.SETTELID) as 结算ID,
to_char(c.MDTRTID) as 就医ID,
ord.settletime as 结算时间,
'P62110200040' as 医保机构编号,
to_char(ord.AREACODE) as 区医保编号,
case when c.clrtype=41 then '药店购药'
when c.clrtype=11 then '普通门诊'
when c.clrtype='99972' then '省内异地药店购药'
when c.clrtype='9903' then '跨省异地药店购药'
when c.clrtype='99970' then '省内异地门诊'
when c.clrtype='9901' then '跨省异地门诊'
else '' end as 清算类别,
c.totalamount as 总金额,
c.CASHPAY as 现金支付,
c.HIFPPAY as 统筹基金支付,
c.ACCOUNTPAY as 个人账户支付,
c.HIFOBPAY as 大病保险基金,
c.FUNDPAY as 基本医疗保险基金,
c.MAFPAY as 医疗救助基金,
c.BALANCE as 账户余额,
case when ord.orderstatus=5 then '退费成功'
when ord.orderstatus=6 then '已退费'
else '' end 退费标志,
'社保卡' as 卡类别,
case when c.insutype='390' then '职工医保' else '居民医保' end 险种类型,
m.label 人员类型
from YBCloud.med_ORDER ord
left join YBCloud.MED_ORDER_REC_LIST c on ord.OrderNo=c.OrderNo
left join YBCLOUD.CODE_DIC m on m.TYPE ='PSN_TYPE' AND m.VALUE =c.PSNTYPE
where ord.OrderStatus in (2,3,5,6)
and ord.IsDeleted=0
and to_char( ord.settletime,'yyyy-mm-dd')>='2023-01-01'
and to_char(ord.settletime,'yyyy-mm-dd')<='2023-12-31'
and ord.ORDERMEDICALNO='P62XXXXXXXXX'
order by ord.OrderNo;
|
|