SQL日期计算

时间:2016-10-28 10:20:54

标签: sql postgresql

需要一些帮助进行SQL日期计算:

在一张表中,我的患者年龄超过18岁且死于某种疾病(表a)。在另一张表中,我有相同疾病的患者和他们被诊断患有这种疾病的最早日期(表b)。

我需要知道的是,如果他们被诊断出来并且在他们去世后已经过了12个月。

有人可以协助我执行此日期计算。

表a中用于日期的列是indexdate,列在表b中是死亡日期,因为它们已经死亡。

感谢任何帮助

表A:

patientid--age--deathdate
1          20   11/05/2016
2          19   10/09/2015

表B:

PatientID--indexdate
1          01/02/2015
2          08/03/2014

所以我想检查的是,在indexdate和deathdate之间是否已经过了12个月。

2 个答案:

答案 0 :(得分:0)

这列出了自诊断和死亡以来已过去12个月的患者名单。

SELECT A.patientID, A.patientName

FROM tableA A
INNER JOIN
(
SELECT patientID , MIN(DiagnoseDate) As EarliestDate
FROM tableB
GROUP BY patientID
) As B

ON A.patientID = B.patientID
WHERE  date_part('month',age(EarliestDate, DeathDate)) >=12

答案 1 :(得分:-1)

你应该能够通过编写一个通过患者id链接2个表的查询,然后在where子句中使用dateadd函数来做到这一点,这就像这个例子:

WHERE TableA.deathdate> (DATEADD(月,12,TableB.indexdate))

相关问题