ลองใช้คำสั่งแบบนี้ดูนะคับ จะได้ในส่วนที่เป็นหัตถการของ OPD
select er.name , d.price, count(distinct(d.vn))
from doctor_operation d
left join er_oper_code er on er.er_oper_code = d.er_oper_code
where date(d.begin_date_time) between "2016-10-01" and "2016-10-31"
group by d.er_oper_code , d.price
order by count(distinct(d.vn)) desc
หายเหตุ คำสั่งมีเผื่อไว้ให้ในกรณีของราคาหัตถการที่ไม่เท่ากันด้วยคับถ้าไม่ใช้ก็เอาออกตรง group by ได้