DECLARE @age SMALLINT = 11,
@date DATE = '2013-12-07',
@time TIME = '02:00',
@gender CHAR(1) = 'M',
@paid_amt SMALLINT;
SELECT
@paid_amt =
CASE
WHEN DATENAME(DW, @date) = 'Sunday' THEN
CASE
WHEN @Age <= 10 THEN 300
ELSE 700
END
WHEN DATENAME(DW, @date) = 'Saturday' THEN
CASE
WHEN @Age <= 10 THEN 300
ELSE 500
END
ELSE
CASE
WHEN @time < '06:00' OR @time > '21:00' THEN
CASE
WHEN @age <= 10 THEN 200
ELSE 500
END
ELSE
CASE
WHEN @age < 5 THEN 0
WHEN @age >= 5 AND @age <= 10 THEN 100
ELSE 200
END
END
END