【发布时间】:2016-04-25 18:43:49
【问题描述】:
我正在使用 SQL 查询来提取患者数据。我有 3 张桌子。一个包含患者数据的唯一记录(即:名字、姓氏、出生日期......)。第二个表是手术表,它记录了患者进行手术的日期和结果。第三个表是调查表,它记录了手术后所做的调查。 Patient 表中的键称为 HUN,它以一对多的关系链接 Surgery 和 Investigation 表。
我需要了解的是,每次手术后最近的调查日期是什么。一名患者可以进行多次手术,我需要知道每次手术后最近的调查日期。
这是我的数据(注意:这是虚构数据)。有 2 个手术日期:2005 年 5 月 11 日和 2010 年 11 月 22 日。在这些日期中,我需要知道手术日期之后的最近调查日期。结果应该是 2 条记录:
242424 2011-07-19 11-5-05
还有……
242424 2011-02-07 22-Nov-10
HUN Surgery Date Investigation Date
242424 11-May-05 2005-01-22
242424 11-May-05 2006-03-29
242424 11-May-05 2007-03-05
242424 11-May-05 2008-04-01
242424 11-May-05 2009-06-04
242424 11-May-05 2009-06-19
242424 11-May-05 2010-05-21
242424 11-May-05 2011-02-07
242424 11-May-05 2011-02-15
242424 11-May-05 2011-07-19
242424 11-May-05 2012-06-12
242424 11-May-05 2012-09-18
242424 11-May-05 2013-04-04
242424 11-May-05 2013-10-30
242424 11-May-05 2014-10-07
242424 11-May-05 2015-09-09
242424 22-Nov-10 2005-01-22
242424 22-Nov-10 2006-03-29
242424 22-Nov-10 2007-03-05
242424 22-Nov-10 2008-04-01
242424 22-Nov-10 2009-06-04
242424 22-Nov-10 2009-06-19
242424 22-Nov-10 2010-05-21
242424 22-Nov-10 2011-02-07
242424 22-Nov-10 2011-02-15
242424 22-Nov-10 2011-07-19
242424 22-Nov-10 2012-06-12
242424 22-Nov-10 2012-09-18
242424 22-Nov-10 2013-04-04
242424 22-Nov-10 2013-10-30
242424 22-Nov-10 2014-10-07
242424 22-Nov-10 2015-09-09
【问题讨论】:
-
提示:
GROUP BY,MIN(). -
戈登,已经试过了。不工作。只是给我整个调查的最短日期,而不是每次手术。这是我的结果。 HUN 手术日期 MinOfInvestigationDate 51704 11-May-05 2005-01-22 51704 22-Nov-10 2005-01-22 73403 15-Nov-68 1968-01-01 73403 11-Aug-95 1968-01-01 73403 01 -Jan-08 1968-01-01
-
能否请您发布用于获取您发布的数据的
SELECT查询?包括你所有的JOINs。 -
当然:这里是:SELECT DISTINCT T_EncounterSurgery.HUN, T_EncounterSurgery.SurgDate, T_EncounterIntervention.InvestigationDate FROM T_EncounterSurgery INNER JOIN T_EncounterIntervention ON T_EncounterSurgery.HUN = T_EncounterIntervention.HUN WHERE (((T_EncounterSurgery.SurgDate) (SELECT MAX(InvestigationDate) FROM T_EncounterIntervention t WHERE t.HUN = T_EncounterSurgery.HUN)));
-
在下面查看我的新答案。不过,我确实有一个问题。您的问题是,对于
22-Nov-10,最新的InvestigationDate将是2011-02-07,但从您粘贴的数据来看,它看起来应该是2005-01-22。你确定你的JOIN是正确的吗?
标签: sql