well...
there are so many different answers that come to mind.
if you only join the tables together using 1 of the possible methods, that might work.
if by join your data the way you think it should join will produce duplicates, then regardless of what you do, subreport etc, you will always get duplicates.
my generic answer is to use a stored proc, which I know is not always a possibility, but they give you the greatest flexibility for just such cases and you can see the results way faster IMO than constantly refreshing the report.
HTH