oracle语句多个表联查求和,解决数据求和重复的问题⼀、分三个表及⽤到的字段,简单只显⽰每个表⽤到的字段
关联时⽤到的的字段(所有表都有的字段)
patient_id病⼈id
visits就诊次数
1、病⼈住院信息表
patient_inhosp
病⼈住院信息表
hosp_id医院编号
inp_no住院号
patient_id病⼈id
青春旋律
patient_name病⼈姓名
visits就诊次数
ward_id病区
bed_no床号
索引是什么2、住院预交明细表
deposit
住院预交明细表
money预交⾦额(存款)
3、住院费⽤表
fee
住院费⽤表
total_money总⾦额
要求查询
1. 医院编号
2. 住院号
3. 病⼈id汽车维修检测
4. 病⼈姓名
柠檬树歌词5. 就诊次数
6. 床号
7. 病区
8. 预交⾦额:汇总患者预交⾦总⾦额。
9. 消费⾦额:费⽤明细表中总⾦额的总和(因为每个⾦额状态可能不⼀样,所以会有多条)
vika
10. ⽋费⾦额:预交⾦额-消费⾦额。
affect
黑米的功效
因为查询求和很多,所以建成⼀个视图,⽅便调⽤
create or replace view view_arrears_patient as
lect ap.*, (ap.advance_money - ap.consume_money) arrears_money//⽋费⾦额 from (lect a.hosp_id,
a.patient_id,
a.inp_no,
a.visits,
a.patient_name,
a.bed_no,
a.ward_id,
nvl((lect )
mermaid
from deposit z
where z.patient_id = a.patient_id
and z.in_visits = a.in_visits),
0) advance_money,//预交⾦额,空的显⽰0
round(nvl((lect al_money)
from fee r
where r.patient_id = a.patient_id
树冠的读音
and r.in_visits = a.in_visits),
0),
2) consume_money//消费⾦额,保留两位⼩数
from patient_inhosp a
order by a.bed_no) ap
vcotton
where ap.advance_money < ap.consume_money
;