Please, read my comment to your question.
Have a look here:
SET DATEFORMAT dmy;
DECLARE @tbl TABLE([SID] INT, [COURSE] VARCHAR(30), [PAID] DECIMAL(8,2), [BAL] DECIMAL(8,2), [TOT] DECIMAL(8,2), [BILLNO] VARCHAR(3), [DATE] DATETIME)
INSERT INTO @tbl ([SID], [COURSE], [PAID], [BAL], [TOT], [BILLNO], [DATE])
SELECT 1 AS [SID], 'MATHS' AS [COURSE], 6000 AS [PAID], 4000 AS [BAL], 10000 AS [TOT], '001' AS BILLNO, '01/06/2013' AS [DATE]
UNION ALL SELECT 2, 'MATHS', 5000, 5000, 10000, '002', '01/06/2013'
UNION ALL SELECT 3, 'MATHS', 2000, 8000, 10000, '003', '01/06/2013'
UNION ALL SELECT 2, 'MATHS', 3000, 2000, 10000, '004', '02/06/2013'
UNION ALL SELECT 4, 'MATHS', 7000, 3000, 10000, '005', '03/06/2013'
UNION ALL SELECT 1, 'MATHS', 4000, 0.0, 10000, '006', '04/06/2013'
UNION ALL SELECT 2, 'MATHS', 2000, 0.0, 10000, '007', '05/06/2013'
UNION ALL SELECT 3, 'MATHS', 5000, 3000, 10000, '003', '06/06/2013'
SELECT t1.[SID], t1.[COURSE], t1.[PAID], t1.[BAL], t1.[TOT], t1.[BILLNO], t1.[DATE]
FROM @tbl AS t1 INNER JOIN (
SELECT [SID], MAX([DATE]) AS [DATE]
FROM @tbl
GROUP BY [SID]
) AS t2 ON t1.[SID] = t2.[SID] AND t1.[DATE]=t2.[DATE]
WHERE [BAL]>0
ORDER BY t1.[SID]
Result:
[SID] [COURSE] [PAID] [BAL] [TOT] [BILLNO] [DATE]
3 MATHS 5000.00 3000.00 10000.00 003 2013-06-06 00:00:00.000
4 MATHS 7000.00 3000.00 10000.00 005 2013-06-03 00:00:00.000