• Here is a suggestion

    😎

    USE tempdb;

    GO

    SET NOCOUNT ON;

    DECLARE @SAMPLE_DATA TABLE

    (

    CallStartDateTime DATE NOT NULL

    ,MenuNames VARCHAR(100) NOT NULL

    );

    INSERT INTO @SAMPLE_DATA(CallStartDateTime,MenuNames)

    VALUES

    ('2014-09-18','srinivas;saipu;vasu;krishna;srinivas;saipu;krishna')

    ,('2014-09-17','srinivas;saipu;vasu;krishna;srinivas;saipu;krishna;vasu;saipu')

    ,('2014-09-18','krishna;srinivas;saipu;vasu')

    ,('2014-09-18','saipu;vasu;a1;a2;a3;.......a100')

    ,('2014-09-16','saipu;vasu;a1;a2;a3;.......a100')

    ,('2014-09-18','a100;a99;a34;saipu;vasu;krishna;');

    ;WITH DISTINCT_DATES AS

    (

    SELECT DISTINCT

    SD.CallStartDateTime

    FROM @SAMPLE_DATA SD

    )

    SELECT

    DD.CallStartDateTime

    ,STUFF((SELECT CHAR(44) + SD.MenuNames

    FROM @SAMPLE_DATA SD

    WHERE DD.CallStartDateTime = SD.CallStartDateTime

    FOR XML PATH(''),TYPE).value('.[1]','VARCHAR(MAX)'),1,1,'') AS MenuNames

    FROM DISTINCT_DATES DD;

    Results

    CallStartDateTime MenuNames

    ----------------- ------------------------------------------------------------------------------------------------------------------------------------------------

    2014-09-16 saipu;vasu;a1;a2;a3;.......a100

    2014-09-17 srinivas;saipu;vasu;krishna;srinivas;saipu;krishna;vasu;saipu

    2014-09-18 srinivas;saipu;vasu;krishna;srinivas;saipu;krishna,krishna;srinivas;saipu;vasu,saipu;vasu;a1;a2;a3;.......a100,a100;a99;a34;saipu;vasu;krishna;