ashley.sql
Constraint Violating Yak Guru
299 Posts |
Posted - 2007-06-28 : 15:59:07
|
create table holidayTL (holdate datetime)insert into holidayTL values('06/29/2007')insert into holidayTL values('06/30/2007')insert into holidayTL values('07/01/2007')************************QUERY*************************************declare @currbussday datetimedeclare @nextbussday datetimeIF (dateadd(day,(0),datediff(day,0,getdate()))) NOT IN (select holdate from holidayTL) BEGINset @currbussday = (dateadd(day,(0),datediff(day,0,getdate())))PRINT @currbussday ENDELSEIF (dateadd(day,(1),datediff(day,0,getdate()))) NOT IN (select holdate from holidayTL) BEGINset @nextbussday = (dateadd(day,(1),datediff(day,0,getdate())))PRINT @nextbussdayENDELSEIF (dateadd(day,(1),datediff(day,0,getdate()))) IN (select holdate from holidayTL) And(dateadd(day,(2),datediff(day,0,getdate()))) NOT IN (select holdate from holidayTL) And(dateadd(day,(3),datediff(day,0,getdate()))) NOT IN (select holdate from holidayTL) And(dateadd(day,(4),datediff(day,0,getdate()))) NOT IN (select holdate from holidayTL) BEGINset @nextbussday = (dateadd(day,(2),datediff(day,0,getdate())))PRINT @nextbussdayENDELSEIF (dateadd(day,(1),datediff(day,0,getdate()))) IN (select holdate from holidayTL) AND(dateadd(day,(2),datediff(day,0,getdate()))) IN (select holdate from holidayTL) And(dateadd(day,(3),datediff(day,0,getdate()))) NOT IN (select holdate from holidayTL) And(dateadd(day,(4),datediff(day,0,getdate()))) NOT IN (select holdate from holidayTL) BEGINset @nextbussday = (dateadd(day,(3),datediff(day,0,getdate())))PRINT @nextbussdayENDELSEIF (dateadd(day,(1),datediff(day,0,getdate()))) IN (select holdate from holidayTL) And(dateadd(day,(2),datediff(day,0,getdate()))) IN (select holdate from holidayTL) And(dateadd(day,(3),datediff(day,0,getdate()))) IN (select holdate from holidayTL) And(dateadd(day,(4),datediff(day,0,getdate()))) NOT IN (select holdate from holidayTL) BEGINset @nextbussday = (dateadd(day,(4),datediff(day,0,getdate())))PRINT @nextbussdayENDELSEIF (dateadd(day,(1),datediff(day,0,getdate()))) IN (select holdate from holidayTL) And(dateadd(day,(2),datediff(day,0,getdate()))) IN (select holdate from holidayTL) And(dateadd(day,(3),datediff(day,0,getdate()))) IN (select holdate from holidayTL) And(dateadd(day,(4),datediff(day,0,getdate()))) IN (select holdate from holidayTL) BEGINset @nextbussday = (dateadd(day,(5),datediff(day,0,getdate())))PRINT @nextbussdayEND********************************RESULT******************************RESULT SHOULD BE Jun 28 2007 12:00AMJul 02 2007 12:00AMBut I get only Jun 28 2007 12:00AMAlso when you do this insert:insert into holidayTL values('07/02/2007')result should be Jun 28 2007 12:00AMJul 05 2007 12:00AM (There are not more than 4 holidays in a row in US. So I am not going to have any more cases)*******************************************************************Ashley Rhodes |
|