• This should give the result you are looking for..

    DECLARE @t TABLE( ID INT, ColA CHAR(20), ColB CHAR(20), ColC CHAR(20) )

    INSERT INTO @t(ID, ColA, ColB, ColC )

    VALUES

    ( 1, 'India', 'VP', 'Mumbai' ),

    ( 2, 'Aus', 'Consultant', 'Sydney' ),

    ( 2, 'Aus', 'VP', 'Melbourne' ),

    ( 3, 'France', 'Consultant', 'Paris' ),

    ( 4, 'Swiss', 'SC', 'Zurich' ),

    ( 4, 'Swiss', 'Consultant', 'Geneva' ),

    ( 4, 'Swiss', 'VP', 'Lusanne' ),

    ( 5, 'Germany', 'Consultant', 'Koln' ),

    ( 5, 'Germany', 'SC', 'Berlin' );

    SELECT a.ID,

    a.ColA,

    STUFF((SELECT ',' + b.ColB AS "text()"

    FROM @t b

    WHERE b.ID = a.ID

    AND b.ColA = a.ColA

    ORDER BY b.ColB

    FOR XML PATH(''),TYPE).value('.','VARCHAR(MAX)'),1,1,'') as ColB,

    STUFF((SELECT ',' + b.ColC AS "text()"

    FROM @t b

    WHERE b.ID = a.ID

    AND b.ColA = a.ColA

    ORDER BY b.ColC

    FOR XML PATH(''),TYPE).value('.','VARCHAR(MAX)'),1,1,'') AS ColC

    FROM @t a

    GROUP BY a.ID,a.ColA

    ORDER BY a.ID,a.ColA;

    In case you are wondering what the code does, have a look at the article mentioned in the link below

    http://www.sqlservercentral.com/articles/comma+separated+list/71700/

    Edit: Added link to an article


    Kingston Dhasian

    How to post data/code on a forum to get the best help - Jeff Moden
    http://www.sqlservercentral.com/articles/Best+Practices/61537/