【发布时间】:2018-10-17 16:13:23
【问题描述】:
我有一份在 2017 年访问过某个地点的人的列表。目标是将列表缩小到仅在访问时处于特定年龄范围内的人。查询很简单:
SELECT DISTINCT
VisitID
,VisitDate
,PersonID
,Age
,DateOfBirth
FROM Visit v JOIN Demographics d ON v.PersonID = d.PersonID
WHERE VisitDate BETWEEN '01/01/2017' AND '12/31/2017'
AND Age BETWEEN 45 AND 75
问题在于,这个查询的编写方式会吸引当前在该年龄范围内的患者,并且可能不一定在 2017 年。
我想做的是添加一行代码,通过比较VisitDate 和DateOfBirth 字段来计算该人访问时的年龄。当我没有可用的年龄字段时,我之前编写过代码来根据 DOB 计算某人的年龄,但这是另一种情况。到目前为止,我发现的所有教程或示例代码都没有出现在正确的上下文中。我该怎么做呢?
【问题讨论】:
-
访问日期 - 生日日期。
-
如果你可以根据出生日期来计算一个人的年龄,那么在这种“不同的情况”下,你所要做的就是将
GETDATE()替换为VisitDate。
标签: sql sql-server