HIS-LEFT JOIN

今天在根据某张excel表信息,都oracle数据库中获取对应的患者信息。
使用了两张表,fin_opr_register,fin_opb_invoiceinfo
由于要在左表关联右表,因此我使用了left join
同时我在查询时,会出现A表的一条记录对应B表的多条记录
因此,我要使用group by
在这里要注意,使用group by 的时候,select 后面的内容,必须在group by 后面一一出现,但如果select 后面跟的是子查询,则在group by 中不用体现。

select 
    a.clinic_code,
    a.name,
    a.see_date,--预约挂号的没有精确到时分秒,可以替换成SEE_DATE精确到时分秒?
   (select sum(b.tot_cost) from fin_opb_invoiceinfo b where a.clinic_code = b.clinic_code) sumu,
    a.dept_name,
    a.doct_name,
    a.pact_name
from 
fin_opr_register a 
left join 
fin_opb_invoiceinfo b
on a.clinic_code = b.clinic_code
where 
a.pact_code in('2011','2013','2047','J02')--2011门特医保-退休(门诊),2013门特医保-在职(门诊),2047市公医(门特),J02居民医保-门特
and a.valid_flag='1'
and b.cancel_flag='1'
and a.reg_date>=to_date('2018-01-01 00:00:00','yyyy-mm-dd hh24:mi:ss')
and a.reg_date<=to_date('2018-12-31 00:00:00','yyyy-mm-dd hh24:mi:ss')
group by 
    a.clinic_code,
    a.name,
    a.see_date,
    a.dept_name,
    a.doct_name,
    a.pact_name
order by a.name asc , a.clinic_code asc

使用sum计算某一列的总和

猜你喜欢

转载自blog.csdn.net/qq1641725218/article/details/85693391