How about INNER JOIN instead of just JOIN? Also, you are very
inconsistent in your use of table aliases. Does this work any
better?
SELECT CAST(ar.CHG_ACTUAL_AMT as char) as Amount,
ar.CHG_TRAN_CD as trans ,
ar.CHG_SEQ_NBR as seq,
ar.CHG_DT_OF_SERVICE as DOS,
ar.CHG_POST_DT as PST,
ar.CHG_CURRENT_FC as fc,
ar.CHG_PERF_DEPT_CD AS dept,
ar.CHG_PERF_PHYS_NBR as phys,
ar.CHG_PROC_CD as pcode,
ar.DISPLAY_NM AS pname,
ar.CHG_PAT_NBR AS pnum
FROM AR_CHARGE ar
LEFT JOIN MPI_XREF mx on ar.CHG_CUST_NBR = mx.CUST_NBR
AND ar.CHG_PAT_NBR = mx.PAT_NBR
AND mx.PAT_NBR <> 0
INNER JOIN MPI mi on mx.MPI_NBR = mi.MPI_NBR
AND mx.MPI_SET = mi.MPI_SET
WHERE ar.CHG_GUAR_NBR = #url.ID#
AND ar.CHG_CUST_NBR = 04885
GROUP BY ar.CHG_SEQ_NBR, ar.CHG_ACTUAL_AMT,
ar.CHG_TRAN_CD, ar.CHG_DT_OF_SERVICE,
ar.CHG_POST_DT, ar.CHG_CURRENT_FC, ar.CHG_PERF_DEPT_CD,
ar.CHG_PERF_PHYS_NBR, ar.CHG_PROC_CD, ar.DISPLAY_NM,
ar.CHG_PAT_NBR
Phil