SQL查询无法按ID和日期识别单日新增ID,逻辑错误排查
问题核心原因
你写的SQL逻辑存在关联条件缺失的问题:
- NOT EXISTS的子查询没有和外层查询的当前ID做绑定,现有子查询的逻辑只是「判断指定日期的前一天是否存在任意ID记录」,而非「判断前一天是否存在和外层当前行完全相同的ID」。
- 按照你提供的示例数据,2021年10月20日确实存在记录,所以NOT EXISTS的结果永远为假,最终查询不会返回任何结果,和预期不符。
修正后的查询语句
SELECT t1.ID FROM Test t1 WHERE t1.TheDate = #21/10/2021# AND NOT EXISTS ( SELECT 1 FROM Test t2 WHERE t2.TheDate = DateAdd("d", -1, #21/10/2021#) AND t2.ID = t1.ID )
结果验证
用你提供的示例数据执行上述修正后的查询,会匹配到2021年10月21日的ID 7,检查前一天2021年10月20日不存在ID=7的记录,最终仅返回ID 7,符合预期需求。
内容的提问来源于stack exchange,提问作者TourEiffel
相关产品推荐
相关产品推荐

