If I correctly understand the purpose you need only summary by the values of Table1, then you can filter distinct results by simply joining all the subqueries in outer "where" clause and adding the "rowid" marker of the row from corresponding table (this is possible in Oracle), and thus calculating the result in the outer query:
select T.adddate, sum(T.Charges) from
SELECT distinct Table1.rowid, Table1.Charges, table4.adddate FROM
Table1.evidencenumber = table2.evidencenumber
AND table3.rep_id = table4.rep_id
AND table2.pareantid IS NULL
group by T.adddate
Still if your SQL engine doesnt have the built-in row marker (like rowid in Oracle) you can add a unique field to the Table1 and use it as a rowid-marker.