Thanks Darin.
Tip I learned was to make sure that all queries have unique aliases for
the FROM tables. I was getting a cross product so I broke it up into 4
reports. Each ran ok with no cross product issues. When I made the union
(use Xpontus XML editor), the cross product came back. I changed the
aliases of the tables in each and now it works.