【发布时间】:2016-02-10 14:27:28
【问题描述】:
我有一个包含许多患者病理结果的 Access 数据库,其中通常包括在一段时间内为同一患者收集的许多样本。我想保留每位患者的第一个记录,但丢弃同一患者在 14 天内发生的所有后续记录。但如果 14 天后还有更多样本,请保留第一个后续样本,然后再次丢弃接下来 14 天的样本。
该表有很多列,但最重要的是patient ID 和sample collection date。
我需要了解如何编写 SQL 语句来选择这些初始记录,但在随后的 14 天内丢弃这些记录。我认为它可能与between 命令有关,但我不确定如何使开始日期和结束日期可变以及如何使其在整个数据集上递归。
【问题讨论】:
-
我认为您无法在一个查询中完成。您将需要遍历每个患者 ID,找到他们的第一个日期,在 14 天内删除任何内容,找到下一个日期并重复。当您说丢弃时,您的意思是从表中删除还是仅从结果中删除?如果是后者,那么您需要将患者 ID 和日期添加到一个临时表中,而不是删除,以链接回最终输出
标签: sql date ms-access recursion duplicates