2014-01-16 47 views
0

我試圖從proc_chron中讀出所有患者結果在4軸類別中的最新日期,並且患者在case_status下的(活動)位置排除在外所有四個類別都爲空的患者。 SQL Server 2005中爲個人提取不同的值

select 

pct.patient_id, 
pct.clinic_id, 
pct.axis_I_II_1, 
pct.axis_I_II_2, 
pct.axis_I_II_3, 
pct.axis_III_1, 
pct.proc_chron 

from patient_clin_tran pct 
join patient p 
on p.patient_id = pct.patient_id 
group by pct.patient_id, pct.clinic_id, pct.axis_I_II_1,pct.axis_I_II_2, pct.axis_I_II_3, pct.axis_III_1, p.case_status, pct.proc_chron 
having p.case_status = 'a' and pct.proc_chron = (select max(pct.proc_chron)) 
order by pct.patient_id 

enter image description here

+0

移動'pct.proc_chron =(選擇最大(pct.proc_chron)'的地方和嘗試。 – user2989408

+0

不知道我理解你說的話。我添加了一個除了有的地方,並與小組一起嘗試,並已註釋掉,它仍然無法正常工作。 –

+1

StevieG發佈了我要求你做的事情,看看是否有效 – user2989408

回答

2
select  
    pct.patient_id, 
    pct.clinic_id, 
    pct.axis_I_II_1, 
    pct.axis_I_II_2, 
    pct.axis_I_II_3, 
    pct.axis_III_1, 
    pct.proc_chron  
from patient_clin_tran pct 
    join patient p 
    on p.patient_id = pct.patient_id 
where p.case_status = 'a' 
    and pct.proc_chron = (select max(proc_chron) from patient_clin_tran pct2 where pct2.patientid = p.patientid) 
and (pct.axis_I_II_1 is not null or pct.axis_I_II_2 is not null or pct.axis_I_II_3 is not null or pct.axis_I_II_4 is not null) 
order by pct.patient_id 
+0

Msg 156,Level 15,State 1,Line 15 關鍵字'where'附近的語法不正確。 –

+0

哎呀,剪切和粘貼錯誤...現在嘗試。 – StevieG

+0

這是有效的。謝謝!有關如何刪除所有4列軸爲空的列表的任何想法? –