where convert(VARCHAR, t.startdate, 103) = '23/04/2012'
is wrong in Your Query, TimeSheet has no startDate column, Corrrect it with e.startDate..
Try This, Its working fine..
SELECT e.employeename,convert(VARCHAR, e.startdate, 103) as startdate,SUM(t.totalhours) as hourstaken,l.leavetype
FROM employee e
INNER JOIN
timesheet t ON e.employeeid=t.employeeid
inner join
leave l on l.leaveemployeeid=t.employeeid
where convert(VARCHAR, e.startdate, 103) = '27/04/2012'
GROUP BY e.employeeid,e.employeename,convert(VARCHAR, e.startdate, 103),l.leavetype
HAVING SUM(t.totalhours) < 9 order by e.employeename