Quite often in large reports we want to see several unrelated details data for each master record.

If details data have more than one row and we join this data using a left outer join, we get multiplication of the detail rowsets.

Original discussion can be found here.

The approach below can be used to deduplicate details data.

Let's start from the SSRS grouping definition Understanding Groups (Report Builder and SSRS):
All groups in a data region specify different views of the same report dataset.
SAME dataset.
If you want to use several datasets for one tablix you will face a multiplication problem:
SELECT *
FROM (
	VALUES (1, 'head 1'), (2, 'head 2')
	) AS A(AKey, AName)left outer join
	(
	VALUES (1, 'detail B head 1'), (2, 'detail B head 2')
	) AS B(BKey, BName) on A.AKey = B.BKey
	left outer join 
	(
	VALUES (1, 'detail c head 1'), (1, 'detailc c head 2')
	) AS C(CKey, CName) on A.AKey = C.CKey
problem definition

The solution is to number datasets lines, make a table with numbers and join the details with this table:
WITH B
AS (
	SELECT *, row_number() OVER (
			PARTITION BY BKey ORDER BY BKey
			) AS rn
	FROM (
		VALUES (1, 'detail B head 1'), (2, 'detail B head 2')
		) AS BBase(BKey, BName)
	), C
AS (
	SELECT *, row_number() OVER (
			PARTITION BY CKey ORDER BY CKey
			) AS rn
	FROM (
		VALUES (1, 'detail c head 1'), (1, 'detailc c head 2')
		) AS CBase(CKey, CName)
	), JN
AS (
	SELECT Bkey AS JKey, rn
	FROM B
	
	UNION
	
	SELECT Ckey AS JKey, rn
	FROM C
	)
SELECT *
FROM (
	VALUES (1, 'head 1'), (2, 'head 2')
	) AS A(AKey, AName)
LEFT JOIN JN ON JN.JKey = A.AKey
LEFT JOIN C ON JN.JKey = C.CKey
	AND JN.rn = C.rn
LEFT JOIN B ON JN.JKey = B.BKey
	AND JN.rn = B.rn


Now you can summarise/concatenate or whatever over the details data without the multiplication.