不在另一个表的范围内

时间:2011-08-29 14:26:03

标签: sql sql-server tsql

我正在使用MSSQL 2000。

我有一个包含日期列的表格,其中包含日期,t_mydates(dateA)。

我有第二个表t_exlusions(start_date,end_date)

我想要一个从t_mydates返回所有日期的查询,它们不在t_exlusions的任何范围之间。

1 个答案:

答案 0 :(得分:2)

查询:

select d.*
from @t_mydates d
left join @t_exlusions e on date between start_date and end_date
where start_date is null and end_date is null

考试日期:

declare @t_mydates table (date date)
insert into @t_mydates (date)
values
(GETDATE()),(GETDATE()-1),(GETDATE()-2),(GETDATE()-3),(GETDATE()-4),(GETDATE()-5),(GETDATE()-6),(GETDATE()-7)

declare @t_exlusions table (start_date date, end_date date)
insert into @t_exlusions (start_date, end_date)
values
(GETDATE()-1, GETDATE()), (GETDATE()-5, GETDATE()-4)

结果:

2011-08-27
2011-08-26
2011-08-23
2011-08-22