【发布时间】:2021-08-01 16:43:57
【问题描述】:
我有两张桌子。
表 1:
table1Id,
一些领域....
表 2:
table2Id,
table1Id,
ValidTill(日期时间),
一些领域...
有两个概念,活动记录和非活动记录。
非活动记录 = 来自Table1 的记录,这些记录位于Table2 中,且ValidTill 的日期早于今天。
活动记录 = 来自Table1 的记录在Table2 中,ValidTill 的日期比今天多。如果Table2 其ValidTill < today's date 中存在这样多个table1Id 无关紧要,如果Table2 其Validtill > today's date 中至少存在一条记录,那么它将被视为活动记录,不应属于非活动记录。
查询:
活跃:
Select * from Table1 where table1Id in (Select table1Id from Table2 where ValidTill > GETDATE())
不活跃:
Select * from Table1 where table1Id in (Select table1Id from Table2 where ValidTill < GETDATE())
通过这两个查询,我得到了一些处于活动状态的记录(可能有这样的记录,其validTill < GETDATE(),但至少有一条记录为ValidTill > GETDATE())并且仍然处于非活动记录之下。
需要更好地查询非活动记录以避免出现活动记录。
提前致谢。
【问题讨论】:
-
嗨@Dinav Ahire,请提供示例数据或预期输出。
标签: sql sql-server