Comment obtenir plusieurs lignes dans une ligne en tant que chaîne?

J'ai deux tables "un à plusieurs":

Table1

ID    Name
1     Abe
2     David
3     Orly

Table2

ID    email
1     a@zz.com
1     ab@zz.com
1     abe@zz.com
2     dav@zz.com
2     d@zz.com
3     orly@zz.com
3     o@zz.com

J'ai besoin d'une sortie comme celle-ci:

1 Abe a@zz.com, ab@zz.com, abe@zz.com
2 David dav@zz.com, d@zz.com
3 Orly orly@zz.com, o@zz.com

Je sais que cela ne fonctionne pas, parce que la sélection interne n'est pas une chaîne unique:

SELECT 
    ID, Name, 
    (SELECT email FROM Table2  WHERE Table2.ID = Table1.ID) AS emails 
FROM Table1

J'ai essayé d'appliquer:

DECLARE @emails VARCHAR(999)

SELECT [ID],[Name], 
     (SELECT @emails = COALESCE(@emails + ', ', '') + [email] 
      FROM Table2) AS 'emails' 
FROM Table1

mais avec pas de chance.

Comment cela doit-il être résolu?

Grâce.

source d'informationauteur elarrow