Dilip,

Thanks for bearing with me on this -

I think I see where the problem is
I've told it to check the max date then if it's '' use 20/11/2003. I now need to give it the else part, which is use the returned date from the max query.

What's the best way to do this? I've put a comma in and rewriten out the max query which appears to work, but looks messy. Is there a better way of structuring it?

Code:
SELECT t.Start_Dat, t.End_Dat 
FROM Tariff t 
WHERE t.Start_Dat >= (decode((SELECT max(t.start_dat) 
	FROM Tariff t 
	WHERE t.Start_dat <= to_date('19/11/2003', 'dd/mm/yyyy')), Null, to_date('10/11/2003', 'dd/mm/yyyy'), (SELECT max(t.start_dat) 
		FROM Tariff t 
		WHERE t.Start_dat <= to_date('19/11/2003', 'dd/mm/yyyy'))))