Sample id patient_id result date
1 1 positive 2015
2 2 positive 2015
3 2 negative 2016
我可以将每位患者的最大日期的阳性结果总结一下吗?
SQL等效代码:
select
sum(case when sout.result_id=1 then 1 else 0 end)
from
samples sout ,
(
select max(sin.date) as maxdate,
sin.patient_id
from samples sin
where sin.date between date(${StartDateParam}) and date(${EndDateParam})
group by sin.patient_id
) tmp
where
sout.patient_id = tmp.patient_id and
sout.date = tmp.maxdate
答案 0 :(得分:-1)
患者的样本查询: 当前已入院:选择p。Patient_no,p.pat_name,p.date_admitted,r.room_extension,p.date_discharged来自患者p加入房间r ON p.room_location = r.room_location其中p.date_discharged是p。Patient_no,p的空订单.pat_name,p.date_admitted,r.room_extension,p.date_discharged;
空房间:选择r.room_location,r.room_accomadation,r.room_extension从房间r,其中r.room_location不输入(从p.date_discharged为NULL的Patient.p选择p.room_location),按r.room_location,r排序.room_accomadation,r.room_extension;
尚无收费:从患者p SELECT p。Patient_no,p.pat_name,空缺(b.charge,0.00)收费p。Patient_no = b。Patient_no上的帐单b在哪里p。Patient_no NOT IN(选择Patient_no FROM)计费)按p。Patient_no分组或按p。Patient_no,p.pat_name,charge分组;
最高薪水:SELECT phy_id,phy_name,薪水来自医生,其中薪水来自(SELECT MAX(薪水来自医生)UNION SELECT phy_id,phy_name,薪水来自医生,其中(SELECT MIN(salary)from医师)薪水来自phy_id,phy_name,薪水;
由以下人员消耗的各种项目:选择p.pat_name,i.discription,计数(i.item代码)作为患者p的项目代码,在p。患者编号= b上加入计费b。病人没有加入项目i在b.item代码= i.item代码组上按p。患者编号,i.item代码排序由....
未接受治疗的患者:从患者p中选择p。Patient_no,p.pat_name,其中p。Patient_no NOT IN(选择t。Patient_no FROM治疗t) ORDER BY p.patient_no,p.pat_name;
2高薪:通过薪水为IN的工资从医生组中选择phy_id,phy_name,date_of_joining,max(salary)作为薪水(从医生那里选择薪水) 按phy_id,phy_name,加入日期,工资限制2排序;
超过200:选择患者编号,总和(费用),作为按患者编号从计费组中选择的总费用,而总费用> 200(按患者编号),总费用