select max(myDate) from ( select field_1 myDate from myTable union all select field_2 myDate from myTable union all select field_3 myDate from myTable) uniontable
SELECT MAX( CASE WHEN field1 > field2 THEN CASE WHEN field1 > field3 THEN field1 ELSE field3 END ELSE CASE WHEN field2 > field3 THEN field2 ELSE field3 END END ) FROM myTable
declare @dt table ( akey int, d1 datetime, d2 datetime, d3 datetime ) insert into @dt values (1, '2012-01-01', getdate(), '2012-09-01' ) insert into @dt values (2, getdate(), '2012-01-01', '2012-09-01' ) insert into @dt values (3, '2012-01-01', '2012-09-01', getdate() )select akey, max(dates)from ( select akey, d1, d2, d3 from @dt ) p unpivot ( dates for datevals in ( d1, d2, d3 ) )AS unpvtgroup by akey