UserId  FirstName   LastName    Role
    34      Rahul       Gupta       Manager
    34      Rahul       Gupta       Director
I have one stored Procedure which returns me result like this, for one record if I have two roles I get two separate rows. I want to have only one row like this:
UserId  FirstName   LastName    Role
34      Rahul       Gupta       Manager,Director
Stored Procedure is :
SELECT [USER].[USER_ID] AS [UserId]
      ,[FIRST_NM] AS FirstName
      ,[LST_NM] AS LastName
      ,[Role].[ROLE_ID] AS RoleId
      ,[Role].[ROLE_NM] AS Role
FROM [dbo].[USER] [User] (NOLOCK)
INNER JOIN dbo.USER_ROLE [USER_ROLE] on [User].USER_ID=[USER_ROLE].USER_ID
INNER JOIN dbo.ROLE [Role] on [Role].ROLE_ID=[USER_ROLE].ROLE_ID
WHERE [USER].[SSO_ID] = 'xyz' 
This is not working..what i am doing wrong here
SELECT [USER].[USER_ID] [UserId]    
       ,[FIRST_NM] AS FirstName  
      ,[LST_NM] AS LastName        
        , (STUFF((SELECT CAST(', ' + [Role].[ROLE_NM] AS VARCHAR(MAX)) 
FROM [dbo].[USER] [User] (NOLOCK)       
INNER JOIN dbo.USER_ROLE [USER_ROLE] on [User].USER_ID=[USER_ROLE].USER_ID        
INNER JOIN dbo.ROLE [Role] on [Role].ROLE_ID=[USER_ROLE].ROLE_ID     
WHERE [USER].[SSO_ID] = 'a40ecdebfef84f099f74c4d9cf537929'  
FOR XML PATH ('')), 1, 2, '')) AS Roles
