• A cross tabs approach using Eirikur's sample data.

    WITH BASE_DATA AS

    (

    SELECT

    ItemId

    ,CustomerItemId

    ,Customer

    ,Plant

    ,UnitPrice

    ,CustomerPO

    FROM (VALUES

    (637,'82604029-5','C1','P1','0.7208','P1000')

    ,(637,'82604029-5','C2','P1','0.6889','441670')

    ,(637,'82604029-5','C2','P1','0.6889','411754')

    ,(637,'82604029-5','C2','P1','0.6889','412530')

    ) AS X(ItemId,CustomerItemId,Customer,Plant,UnitPrice,CustomerPO)

    )

    /* AND THIS IS OUR CTE */

    ,RN_DATA AS

    (

    SELECT

    ROW_NUMBER() OVER (PARTITION BY ItemId ORDER BY (SELECT NULL)) AS BD_RID

    ,BD.ItemId

    ,BD.CustomerItemId

    ,BD.Customer

    ,BD.Plant

    ,BD.UnitPrice

    ,BD.CustomerPO

    FROM BASE_DATA BD

    )

    SELECT

    RD.ItemId

    ,MAX(CASE WHEN RD.BD_RID = 1 THEN RD.CustomerItemId END) AS CustomerItemId1

    ,MAX(CASE WHEN RD.BD_RID = 1 THEN RD.Customer END) AS Customer1

    ,MAX(CASE WHEN RD.BD_RID = 1 THEN RD.Plant END) AS Plant1

    ,MAX(CASE WHEN RD.BD_RID = 1 THEN RD.UnitPrice END) AS UnitPrice1

    ,MAX(CASE WHEN RD.BD_RID = 1 THEN RD.CustomerPO END) AS CustomerPO1

    ,MAX(CASE WHEN RD.BD_RID = 2 THEN RD.CustomerItemId END) AS CustomerItemId2

    ,MAX(CASE WHEN RD.BD_RID = 2 THEN RD.Customer END) AS Customer2

    ,MAX(CASE WHEN RD.BD_RID = 2 THEN RD.Plant END) AS Plant2

    ,MAX(CASE WHEN RD.BD_RID = 2 THEN RD.UnitPrice END) AS UnitPrice2

    ,MAX(CASE WHEN RD.BD_RID = 2 THEN RD.CustomerPO END) AS CustomerPO2

    ,MAX(CASE WHEN RD.BD_RID = 3 THEN RD.CustomerItemId END) AS CustomerItemId3

    ,MAX(CASE WHEN RD.BD_RID = 3 THEN RD.Customer END) AS Customer3

    ,MAX(CASE WHEN RD.BD_RID = 3 THEN RD.Plant END) AS Plant3

    ,MAX(CASE WHEN RD.BD_RID = 3 THEN RD.UnitPrice END) AS UnitPrice3

    ,MAX(CASE WHEN RD.BD_RID = 3 THEN RD.CustomerPO END) AS CustomerPO3

    ,MAX(CASE WHEN RD.BD_RID = 4 THEN RD.CustomerItemId END) AS CustomerItemId4

    ,MAX(CASE WHEN RD.BD_RID = 4 THEN RD.Customer END) AS Customer4

    ,MAX(CASE WHEN RD.BD_RID = 4 THEN RD.Plant END) AS Plant4

    ,MAX(CASE WHEN RD.BD_RID = 4 THEN RD.UnitPrice END) AS UnitPrice4

    ,MAX(CASE WHEN RD.BD_RID = 4 THEN RD.CustomerPO END) AS CustomerPO4

    FROM RN_DATA RD

    GROUP BY RD.ItemId

    Luis C.
    General Disclaimer:
    Are you seriously taking the advice and code from someone from the internet without testing it? Do you at least understand it? Or can it easily kill your server?

    How to post data/code on a forum to get the best help: Option 1 / Option 2