try this,
select ENTRY_course,COUNT(*) as Str ,convert (varchar, DTsen,6) as [DTSEN],
convert (varchar,DTCOM,6) as [DTCOM],
dbo.getBTechBECount(ENTRY_course) as 'BTECH',
dbo.getTESCount(ENTRY_course) as 'TES',
Batch,dbo.getMedCount(ENTRY_course) as 'MED',
COUNT(*)-dbo.getBTechBECount(ENTRY_course)-dbo.getTESCount(ENTRY_course)AS [Bal],
dbo.getYOCount(ENTRY_course) as 'YO Done',
COUNT(*)-dbo.getBTechBECount(ENTRY_course)-dbo.getTESCount(ENTRY_course)-dbo.getyoCount(ENTRY_course) AS [Avl for YO],
dbo.getpdCount(ENTRY_course) as 'Att Pd',
convert (varchar, DTCOM+396,6) as [Avl dt for YO],
dbo.getdtlCount(ENTRY_course) as 'Dtld YO',
convert (varchar, DTCOM+396+120,6) as [YO Ends],
dbo.getYTOCount(ENTRY_course) as 'YTO Done',
dbo.getADVCount(ENTRY_course) as 'ADV Done'
FROM COURSE_INTAKE
group by ENTRY_course,DTCOM,DTSEN,BATCH
having DTCOM=DTSEN
ORDER BY DTCOM
Note:If your are using group by cluase on query then must use having instead of where clause.