2014-10-10 240 views
0

我有三個查詢,我想合併爲三列。SQL三個查詢合併爲三列

我要尋找這樣的輸出:

DEPTNAME1 -----計數(不同pat_id Q1)-----計數(不同pat_id Q2)-----計數(不同pat_id Q1)/計數(不同pat_id Q2

DEPTNAME2 -----計數(不同pat_id Q1)-----計數(不同pat_id Q2) - - - - 計數(不同的pat_id Q1)/計數(不同pat_id Q2

ETC

我給Q1當前的代碼:

select DEP.DEPARTMENT_NAME, 
count(distinct hsp.pat_id) 
from pat_enc_hsp hsp 
left outer join clarity_adt adt 
on hsp.pat_enc_csn_id = adt.pat_enc_csn_id 
left outer join clarity_dep dep 
on ADT.DEPARTMENT_ID = dep.DEPARTMENT_ID 
inner join patient pat 
on hsp.PAT_ID = pat.PAT_ID 
left outer join ip_flwsht_rec rec 
on rec.INPATIENT_DATA_ID = hsp.INPATIENT_DATA_ID 
left outer join ip_flwsht_meas meas 
on rec.FSD_ID = meas.FSD_ID 
left outer join ip_flo_gp_data 
on meas.FLO_MEAS_ID = ip_flo_gp_data.FLO_MEAS_ID 
where adt.department_id IN (1,2,3,4,5) 
and (hsp.ed_disposition_c is null or hsp.ed_disposition_c not in ('5','6')) 
and hsp.HOSP_ADMSN_TIME between TO_DATE ('08-10-2014 00:00:00', 'DD-MM-YYYY HH24:MI:SS') and TO_DATE ('08-10-2014 23:59:59', 'DD-MM-YYYY HH24:MI:SS') 
GROUP BY DEP.DEPARTMENT_NAME 

我給Q2當前的代碼:

select DEP.DEPARTMENT_NAME, 
count(distinct hsp.pat_id) 
from pat_enc_hsp hsp 
left outer join clarity_adt adt 
on hsp.pat_enc_csn_id = adt.pat_enc_csn_id 
left outer join clarity_dep dep 
on ADT.DEPARTMENT_ID = dep.DEPARTMENT_ID 
inner join patient pat 
on hsp.PAT_ID = pat.PAT_ID 
left outer join ip_flwsht_rec rec 
on rec.INPATIENT_DATA_ID = hsp.INPATIENT_DATA_ID 
left outer join ip_flwsht_meas meas 
on rec.FSD_ID = meas.FSD_ID 
left outer join ip_flo_gp_data 
on meas.FLO_MEAS_ID = ip_flo_gp_data.FLO_MEAS_ID 
where adt.department_id IN (1,2,3,4,5) 
and (hsp.ed_disposition_c is null or hsp.ed_disposition_c not in ('5','6')) 
and hsp.HOSP_ADMSN_TIME between TO_DATE ('08-10-2014 00:00:00', 'DD-MM-YYYY HH24:MI:SS') and TO_DATE ('08-10-2014 23:59:59', 'DD-MM-YYYY HH24:MI:SS') 
and meas.flo_meas_id in ('00', 
'7', 
'8', 
'9', 
'0') 
GROUP BY DEP.DEPARTMENT_NAME 

Q3是從特定的行Q1 /輸出輸出特定的行Q2:

謝謝所有幫助

回答

0
select DEPARTMENT_NAME, q1, q2, decode(q2, 0, null, q1/q2) from 
(select DEP.DEPARTMENT_NAME, 
count(distinct hsp.pat_id) q1, 
count(distinct case when meas.flo_meas_id in ('00', '7', '8', '9', '0') then hsp.pat_id else NULL end) q2 
from pat_enc_hsp hsp 
left outer join clarity_adt adt on hsp.pat_enc_csn_id = adt.pat_enc_csn_id 
left outer join clarity_dep dep on ADT.DEPARTMENT_ID = dep.DEPARTMENT_ID 
inner join patient pat on hsp.PAT_ID = pat.PAT_ID 
left outer join ip_flwsht_rec rec on rec.INPATIENT_DATA_ID = hsp.INPATIENT_DATA_ID 
left outer join ip_flwsht_meas meas on rec.FSD_ID = meas.FSD_ID 
left outer join ip_flo_gp_data on meas.FLO_MEAS_ID = ip_flo_gp_data.FLO_MEAS_ID 
where adt.department_id IN (1,2,3,4,5) 
and (hsp.ed_disposition_c is null or hsp.ed_disposition_c not in ('5','6')) 
and hsp.HOSP_ADMSN_TIME between TO_DATE ('08-10-2014 00:00:00', 'DD-MM-YYYY HH24:MI:SS') and TO_DATE ('08-10-2014 23:59:59', 'DD-MM-YYYY HH24:MI:SS') 
GROUP BY DEP.DEPARTMENT_NAME); 
+0

優雅和完善。感謝您的大力幫助! – 2014-10-12 21:45:04