我有一个查询,该查询根据av_summary列提取上周的所有研究。我需要添加一列,以便无论最近进行的研究是在多久之前进行的,都将这项研究拉到最新的研究之前。我只需要最后一次学习的日期。 f.creation_datetime是当前研究和先前研究都来自的列。
select distinct
f.patient_name
,t.patient_mrn
,p.accession_number
,p.performed_start_time
,p.procedure_id
,SUBSTRING(CAST(s.av_summary as NVARCHAR(MAX)), CHARINDEX('This suggests
the stenosis', CAST(s.av_summary as NVARCHAR(MAX))) ,
LEN(CAST(s.av_summary as NVARCHAR(MAX)))) as AV_Summary
,(select TOP 1 (p1.performed_start_time)
from dbo.T_TCS_PROCEDURE as p1
where
p1.patient_id = p.patient_id
and
p1.performed_start_time < p.performed_start_time
and p1.procedure_type_id = p.procedure_type_id
order by p1.performed_start_time DESC
) as Last_Echo
from dbo.folders as f
join dbo.T_TCS_PROCEDURE as p
on p.procedure_id = f.procedure_id
join dbo.T_ECHO_SUMMARY as s
on s.procedure_id = f.procedure_id
join dbo.T_CON_DISPATCHER_EVENT_TRACK as t
on t.procedure_id = f.procedure_id
其中 CAST(f.creation_datetime AS DATE)> DATEADD(DAY,-14,CAST(GETDATE() 截止日期)) 和 CAST(s.av_summary为NVARCHAR(MAX)),例如'%这表明狭窄为%' 和 LEN(LTRIM(RTRIM(t。Patient_mrn)))> 0
答案 0 :(得分:0)
我需要添加一列以使研究最先进行 最近的研究,无论以前的研究是在多久以前进行的。
将列添加为子查询,该子查询在当前行的研究日期之前获得TOP 1日期。
答案 1 :(得分:0)
我终于能够弄清楚如何获得上一次研究所需的数据。我不得不在几个不同的列上关联子查询,并且使用了完全不同的表。我正在使用的数据库完全混乱,但是我设法弄清楚了。创建数据库的公司甚至无法弄清楚。谢谢大家的帮助。非常感谢。
,(select TOP 1 (p1.performed_start_time)
from dbo.T_TCS_PROCEDURE as p1
where
p1.patient_id = p.patient_id
and
p1.performed_start_time < p.performed_start_time
and
p1.procedure_type_id = p.procedure_type_id
order by p1.performed_start_time DESC
) as Last_Echo