If I understood your question correctly, you're after
GROUP BY[
^] clause.
If you take the first query and join the tables to the tables in the second and then group by all non-aggregated columns, I believe that we're getting close to what you want. Also all of the conditions need to be merged into the same statement.
So perhaps something like this:
SELECT cbm.cmn_minor_code as Course_Name,
CONVERT(char,cbm.cbm_batch_start_dt,106) as Course_date,
cbm.cbm_batch_id as Batch_ID,
count(*) as No_of_students
FROM co_batch_master cbm,
student s,
course_registration cr,
batch_course_registration bcr
WHERE cbm.cbm_active < 'd'
AND cbm.cbm_batch_start_dt
BETWEEN CONVERT(datetime,'06-Jul-2015',6)
AND CONVERT(datetime,'06-Jul-2015',6)
AND cr.stud_id = s.stud_id
AND cr.cr_bill_no = bcr.cr_bill_no
AND bcr.bcr_batch_id = cbm.cbm_batch_id
AND cbm.cbm_active <> 'D'
AND cr.cr_active = 'A'
AND s.stud_active <>'D'
AND cbm_batch_id = 'B8753'
GROUP BY cbm.cmn_minor_code,
CONVERT(char,cbm.cbm_batch_start_dt,106),
cbm.cbm_batch_id
ORDER BY cbm_batch_start_dt
Note that I'm really not sure about the joins nor the other conditions since I have no idea about your table structure or logic. However, this should get you started.