Finding repeating sets of data by foreign key
This is a hard one. I'll add a solution that will only work in vNext version, that has the new STRING_AGG() function for string concatenation:

WITH g AS
  ( SELECT 
        ResultID, 
        Items = STRING_AGG (ItemValue, ',') 
                    WITHIN GROUP (ORDER BY ItemValue)
    FROM dbo.ResultItem 
    GROUP BY ResultID
  )
SELECT 
    ResultId = MAX(ResultId),
    Items
FROM g
GROUP BY Items
HAVING COUNT(*) &gt; 1 ; 


The separator (',') should be a character that doesn't appear anywhere in 
ItemValue column.



For current and older versions, I've adapted the FOR XML PATH method, found in many articles (see Aaron Bertrand's blog post Grouped Concatenation in SQL Server which also has many other methods to do string concatenation):

WITH g AS
  ( SELECT 
        ResultID = r.IDResult, 
        Items = STUFF( 
                   ( SELECT N',' + ri.ItemValue 
                     FROM ResultItem AS ri
                     WHERE ri.ResultID = r.IDResult 
                     ORDER BY ri.ItemValue
                     FOR XML PATH(N'')
                   ), 1, 1, N'')
    FROM Result AS r
  ) 
SELECT 
    ResultId = MAX(ResultId),
    Items
FROM g
GROUP BY Items
HAVING COUNT(*) &gt; 1 ;


Tested in rextester.com

See also the answer by Martin Smith from a similar problem: How to find parent rows that have identical sets of child rows?, where he adds an temporary table (appropriately indexed) to improve efficiency of this type of query.