Probably, you need to add a GROUP BY:
SELECT [Batch-Code], COUNT(*) AS Filled FROM [Admission-Information]
GROUP BY [Batch-code]
Will give you the "filled seats" you need, so then all you have to do is JOIN that:
SELECT b.[Batch-code] , b.[Total-Seats], fs.Filled, b.[Total-Seats] - fs.Filled AS [Vacant-seats]
FROM [Batch-Information] b
JOIN (SELECT [Batch-Code], COUNT(*) AS Filled FROM [Admission-Information]
GROUP BY [Batch-code]) fs
ON b.[Batch-code] = fs.[Batch-code]
Which will give you what you wanted.