一、最初(最简单的入门实例,单个分类汇总)
1,查询语句/*药品费用分科室汇总*/
select c.sksxx02,sum(nvl(b.nfyxx06,0))
from yygli60 a,yygli30 b,yygl140 c,yygl101 d
where b.szybh01 = a.szybh01 and
a.sjsdh01=b.sjsdh01 and
b.SFYXX13 = '1' and /*审核标志1*/
djsxx03>=to_date('2011-07-01','yyyy-mm-dd') and djsxx03 < to_date('2011-08-01','yyyy-mm-dd') and
b.Sfyxx23 ='0010' and /*用药科室为手术室*/
b.sjflb01 like 'BD01%' and /*计费类别为BD01药品收入*/
c.sksxx01=b.sfyxx14 and /*翻译就诊科室*/
d.sjcxx01= substr(b.sjflb01,1,8 ) /*翻译计费类别*/
group by c.sksxx02
2,查询语句详解。
先将医嘱表yygli30 b(如下图1)和yygli60 a(结算表),yygl140 c(科室字典表),yygl101 d(基础字典表)关联起来,成一个大的非常非常宽的表;
再通过where子句,筛选出结帐时间在2011年7月1号至8月1号的病人的医嘱,以及计费类别凡属于BD01药品收入的,以及用药科室,即登帐科室为手术室的医嘱;
最后用group by c.sksxx02,即按就诊科室的中文名,分类汇总,注意汇总的是医嘱表费用那一项“sum(nvl(b.nfyxx06,0)) ”。
所得到的查询结果见下图2
图1,医嘱表i30 |
|||||
住院号 |
就诊科室 |
记费类别 |
项目名称 |
费用 |
执行科室 |
2011004123 |
妇产科/三病室 |
麻醉费 |
联合腰麻 |
300 |
手术室 |
2011004123 |
妇产科/三病室 |
特殊材料费 |
联合腰麻包 |
100 |
手术室 |
2011004123 |