【发布时间】:2017-12-29 14:54:19
【问题描述】:
我有两张桌子:
表 1:
Name, StartDate, EndDate
例如:
Timmy, 9/12/17 08:00:00, 9/13/17 00:00:00
Timmy, 9/13/17 05:00:00, 9/13/17 07:00:00
表2:
Name, StartHour, Data...
例如:
Timmy, 9/13/17 06:00:00, Data1...
Timmy, 9/13/17 04:00:00, Data2...
Timmy, 9/13/17 07:00:00, Data3...
Timmy, 9/12/17 14:00:00, Data4...
所以,我需要获取表 2 中的每条记录,其中开始时间不在表 1 中的日期范围内。这需要为每个名称完成(因此 T1/T2 中可以有多个匹配的名称(看T2的数据列不一样)。应该是左边包含,右边排除。
所以对于这个查询,我想看看
Timmy, 9/13/17 04:00:00, Data2...
Timmy, 9/13/17 07:00:00, Data3... (Inclusive on end date)
我不介意它是否加入;我可以删除多余的列。我不想看到重复的。我也不断遇到问题,我会检查是否不是(StartHour >= StartDate AND StartHour
检查它是否在范围内,然后否定,因为如果它们在范围内(包括,不包括),我不想要它们。
【问题讨论】:
-
... where not exists ( select 42 from ... )可能会有所帮助。 -
您的查询目前是什么样的?您是否收到任何错误或不正确的结果?