Reputation: 11982
Using SQL Sever 2005
Table1
ID StartDate EndDate
001 02/23/2010 07/22/2010
002 05/03/2010 null
003 02/02/2011 null
...
Table2
Date
02/24/2011
02/25/2011
...
...
Condition
enddate
is not null then startDate
compare with max(date) from table2, if the startdate > 6 month then it should display as "Expired"How to make a query for the above condition.
Need query Help.
Upvotes: 0
Views: 215
Reputation: 107736
The question is incomplete
But let's assume you mean
enddate < max(date)
Then the query becomes
select
case when EndDate < MaxDate then 'Expired'
when EndDate is null and StartDate < DateAdd(m,-6,GetDate()) then 'Expired'
else 'OK'
end
from Table1 T1
cross join (select max(date) MaxDate from Table2) T2
Upvotes: 0
Reputation: 253
Select
StartDate,
[Status]=Case
when DATEDIFF(m,StartDate,(Select MAX(Date) from Table2))>6
then 'Expired'
Else 'Valid'
end
From Table1
where EndDate is not null
Upvotes: 2
Reputation: 64645
Select Case
When EndDate Is Not Null Then EndDate
When Table1.StartDate > DateAdd(mm, 6, T2.MaxDate) Then 'Expired'
End
From Table1
Cross Join (
Select Max( [Date] ) As MaxDate
From Table2
) As T2
Upvotes: 0