Teradata SQL查询:筛选eGFR与uACR测试间隔≤4天的会员
Teradata SQL筛选eGFR与uACR测试日期间隔不超过4天的会员
如果你的数据是单条记录包含同一会员的eGFR测试日期和uACR测试日期,需要筛选两者间隔≤4天的记录,WHERE子句要覆盖两个日期的双向范围,不能只判断单一方向。
正确写法1:用绝对值计算日期差
Teradata支持直接对日期做减法得到天数差,用ABS()取绝对值确保覆盖两种时间先后情况:
WHERE ABS(eGFR_DATE - uACR_DATE) <= 4
正确写法2:用BETWEEN定义双向日期范围
也可以用INTERVAL语法明确指定时间范围,逻辑更直观:
WHERE eGFR_DATE BETWEEN uACR_DATE - INTERVAL '4' DAY AND uACR_DATE + INTERVAL '4' DAY
你之前写法的问题
你尝试的AND [uACR_2b_2_DATE] <= ([uACR_2b_1_DATE] + 4 Days)只判断了uACR_2b_2_DATE在uACR_2b_1_DATE之后4天内的情况,漏掉了uACR_2b_2_DATE在uACR_2b_1_DATE之前4天内的记录,所以会导致部分符合条件的数据被过滤掉。
内容的提问来源于stack exchange,提问作者lauralee175
相关产品推荐
相关产品推荐

