• seems to be complex, but you can try this..

    SELECT pv.NAME , min(ID) id, Candy , Chocolate from (

    SELECT Name , Candy , Chocolate from

    (SELECT

    Name, [entity] , value

    FROM #temp a INNER JOIN #temp2 b on a.id = b.id

    ) x

    pivot

    (

    sum (value)

    FOR [entity] IN (Candy , Chocolate)

    ) p

    ) as pv Left Join #temp2 a on a.name = pv.name

    group by pv.NAME , Candy , Chocolate



    Praveen D'sa
    MCITP - Database Administrator 2008
    http://sqlerrors.wordpress.com