如何对日期之间的患者执行sql查询
我想询问2019年至今首次诊断为x的患者,不包括2019年之前诊断为x的患者 当我使用下面的查询时,无论是否有陈述:和d[DOS]!<'2019' 有人能帮忙吗 谢谢如何对日期之间的患者执行sql查询,sql,Sql,我想询问2019年至今首次诊断为x的患者,不包括2019年之前诊断为x的患者 当我使用下面的查询时,无论是否有陈述:和d[DOS]!
SELECT [id]
,[DiagnosisCD]
,[DOS]
FROM [diags] d
WHERE [DiagnosisCD] IN ('H91.2', 'H91.20', 'H91.21', 'H91.22', 'H91.23')
AND d.[DOS] >= '2019'
AND d.[DOS] !< '2019'
您可以使用聚合:
SELECT [id]
FROM [diags] d
WHERE [DiagnosisCD] IN ('H91.2', 'H91.20', 'H91.21', 'H91.22', 'H91.23')
GROUP BY id
HAVING MIN(DOS) >= 2019
如果DOS确实是一个日期,则使用:
HAVING MIN(DOS) >= '2019-01-01'
如果需要与这些诊断相关的所有行(即使每个患者有多行),则可以使用exists:
SELECT d.*
FROM [diags] d
WHERE d.DiagnosisCD IN ('H91.2', 'H91.20', 'H91.21', 'H91.22', 'H91.23') AND
NOT EXISTS (SELECT 1
FROM diags d2
WHERE d2.id = d.id AND
d2.DiagnosisCD IN ('H91.2', 'H91.20', 'H91.21', 'H91.22', 'H91.23') AND
d2.dos < 2019
);