找回密码
 立即注册
搜索
查看: 332|回复: 3

按照医保要求导出门店销售明细、进销存、医保对账

[复制链接]

251

主题

134

回帖

1404

积分

版主

积分
1404

活跃会员宣传达人突出贡献优秀版主

发表于 2024-10-31 08:25:11 | 显示全部楼层 |阅读模式
1730334104658.jpg

1730334133024.jpg
1730334149055.jpg


需要通过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;


251

主题

134

回帖

1404

积分

版主

积分
1404

活跃会员宣传达人突出贡献优秀版主

 楼主| 发表于 2024-11-1 17:17:25 | 显示全部楼层
----销售明细表2023
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='P6222222261'     and
to_char( h.accdate,'yyyy-mm-dd')>='2024-01-01'  
and   to_char( h.accdate,'yyyy-mm-dd')<='2024-90-30'
order  by   h.accdate, to_char(a.erpsaleno);


251

主题

134

回帖

1404

积分

版主

积分
1404

活跃会员宣传达人突出贡献优秀版主

 楼主| 发表于 2024-11-1 17:17:59 | 显示全部楼层

-----进销存  
select   'P621122222761'  as    医保机构编号,
         'XXXXXXXXX店'    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=275  and   period='202212'
                group  by   wareid)  qc
           on   r.wareid=qc.wareid  
   left  join  (select  wareid,sum(wareqty) as qmkc from  t_store_d_bak
                where  busno=275  and   period='202312'
                group  by   wareid)  qm
           on   r.wareid=qm.wareid            
where   r.busno='275'   and   w.isinsurance=1  and  
to_char( r.execdate,'yyyy-mm-dd')>='2024-01-01'  
and   to_char(r.execdate,'yyyy-mm-dd')<='2024-09-30'
and  r.compid=2
and  r.billcode  not  in  ('MDACC')
group  by   w.warecode;



251

主题

134

回帖

1404

积分

版主

积分
1404

活跃会员宣传达人突出贡献优秀版主

 楼主| 发表于 2024-11-1 17:18:25 | 显示全部楼层
-----医保对账表
select  c.PsnName as 人员姓名,
        c.CERTNO  as  身份证,
        ord.OutSaleNo  as 系统流水号,
        c.psnno   as  人员信息编号,
        c.SETTELID  as   结算ID,
        c.MDTRTID  as  就医ID,
        ord.settletime   as  结算时间,
        'P62110200029'   as  医保机构编号,
        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')>='2024-01-01'  
and   to_char(ord.settletime,'yyyy-mm-dd')<='2024-09-30'   
and  ord.ORDERMEDICALNO='P6222222222261'
order by ord.OrderNo;


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表