If I understand you correctly , the correct query should be as follows...
select s.part_name as Part_Name,s.part_no as Part_No,s.uom as UOM,max(i.Stock_OnEntryDate) as Opening_Balance ,sum(distinct i.invoice_quantity) as Import,sum(distinct r.Return_Quantity)as Material_Return,sum(distinct p.Issue_Quantity) as Issue,sum(distinct er.Quantity)as Excess,sum(distinct sr.Quantity) as Short,s.available_quantity as Balance from dri_Stock s left join dri_InwardEntry i on
s.part_no=i.part_no and month(i._date)='6' and year(i._date)='2012' left join dri_ReturnToCustomer r on s.part_no=r.part_no and month(r.date)='6' and year(r.date)='2012' left join dri_IssueToProd p on s.part_no=p.part_no and month(p.date)='6' and year(p.date)='2012' left join dri_ExcessReceipt er on s.Part_No=er.Part_No and month(er.date)='6' and year(er.date)='2012' left join dri_ShortReceipt sr on s.part_no=sr.part_no and month(sr.date)='6' and year(sr.date)='2012' group by s.part_name,s.part_no,s.uom,s.available_quantity
Regards