Home Forums SQL Server 2008 SQL Server Newbies Concatenating rows from aliased tables on MSSQL 2005 server RE: Concatenating rows from aliased tables on MSSQL 2005 server

  • this may help you on your way....

    USE [tempdb]

    GO

    -- reconfigured your original query...and removed the subeselects and aliases

    -- hopefully you can follow structure

    SELECT s_element.sendeplatz,

    jingle.sztitle,

    arolle.szname AS ptype,

    aperson.szname AS pname,

    publisher.szname AS pub,

    jingle.lid AS JID,

    jingle.szshortinfo

    INTO #tmp

    FROM s_element

    INNER JOIN s_planhdh ON s_element.planheaderid = s_planhdh.planheaderid

    INNER JOIN jingle ON s_element.lprogrammitemid = jingle.lid

    INNER JOIN jinglepersonrolle ON jingle.lid = jinglepersonrolle.ljingleid

    INNER JOIN arolle ON jinglepersonrolle.larolleid = arolle.lid

    INNER JOIN publisher ON jingle.lid = publisher.lid

    INNER JOIN aperson ON jinglepersonrolle.lapersonid = aperson.lid

    WHERE (s_planhdh.filetype = 'I') AND (s_element.lprogrammitemtypid = 30)

    SELECT * FROM #tmp

    --is this what you are looking for below ??

    SELECT

    sendeplatz,

    sztitle,

    STUFF((

    SELECT ',' + rtrim(pname)

    FROM #tmp p2

    WHERE p1.sendeplatz = p2.sendeplatz

    AND ptype = 'Author'

    ORDER BY p2.pname

    FOR XML PATH('')

    ), 1, 1, ' ')

    +','+

    STUFF((

    SELECT ',' + rtrim(pname)

    FROM #tmp p2

    WHERE p1.sendeplatz = p2.sendeplatz

    AND ptype = 'Composer'

    ORDER BY p2.pname

    FOR XML PATH('')

    ), 1, 1, ' ')

    +','+

    STUFF((

    SELECT ',' + rtrim(pname)

    FROM #tmp p2

    WHERE p1.sendeplatz = p2.sendeplatz

    AND ptype = 'Performer'

    ORDER BY p2.pname

    FOR XML PATH('')

    ), 1, 1, ' ')

    +','+

    ISNULL(STUFF((

    SELECT ',' + rtrim(pname)

    FROM #tmp p2

    WHERE p1.sendeplatz = p2.sendeplatz

    AND ptype = 'Arrangeur'

    ORDER BY p2.pname

    FOR XML PATH('')

    ), 1, 1, ' '), '') ,

    pub ,

    JID ,

    szshortinfo

    FROM #tmp p1

    GROUP BY sendeplatz,sztitle,pub,JID,szshortinfo

    DROP TABLE [dbo].[#tmp]

    GO

    ________________________________________________________________
    you can lead a user to data....but you cannot make them think
    and remember....every day is a school day