Sql 获取患者特定事件的具体编号

Sql 获取患者特定事件的具体编号,sql,sql-server-2005,group-by,where,Sql,Sql Server 2005,Group By,Where,我正在尝试为每个患者获取最新的axis_I_II_3编号。我需要一种方法来获取每个患者id的最高集号的最新日期。希望有人能帮我解决这个问题 select distinct pct.patient_id, pct.episode_id, pct.axis_I_II_3, pct.proc_chron, pct.clinic_id from patient_clin_tran pct join patient p on pct.patient_id = p.patient_id where pc

我正在尝试为每个患者获取最新的axis_I_II_3编号。我需要一种方法来获取每个患者id的最高集号的最新日期。希望有人能帮我解决这个问题

select

distinct pct.patient_id,
pct.episode_id,
pct.axis_I_II_3,
pct.proc_chron,
pct.clinic_id

from patient_clin_tran pct
join patient p on pct.patient_id = p.patient_id
where pct.axis_I_II_3 is not null and p.case_status = 'A' and pct.patient_id not in ('00000004')

这种结构会给你答案

select  pct.patient_id,
pct.episode_id,
pct.axis_I_II_3,
pct.proc_chron,
pct.clinic_id

from patient_clin_tran pct
join patient p on pct.patient_id = p.patient_id
join (
select patient_id, max(proc_chron) maxdate
from patient_clin_tran
where whatever
group by patient_id
) temp on temp.patient_id = pct.patient_id and pct.proc_chron = maxdate
etc

您可以添加where子句并修复我可能出现的任何语法错误。

您没有提到平台-从屏幕截图上看,它看起来像SQL Server,但它是什么版本?SQL Server 2005。谢谢。@JeremyMcDevitt:我已经为您添加了标记。Msg 4104,16级,状态1,第1行多部分标识符“pct.axis_I_II_3”无法绑定。Msg 4104,级别16,状态1,第1行无法绑定多部分标识符“p.case_status”。Msg 4104,级别16,状态1,第1行无法绑定多部分标识符“pct.patient_id”。