2011-08-29 79 views
2

範圍內我使用MSSQL 2000不從另一個表

我有包含日期​​,t_mydates(dateA)一個日期列的表。

我有第二個表t_exlusions(日期,結束日期)

我想查詢返回的所有日期從那裏他們沒有任何t_exlusions範圍之間t_mydates。

+0

你嘗試過什麼?你卡在哪裏?爲了獲得沒有排除存在的記錄,自然地想到** NOT EXISTS **。 –

回答

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