• I'm afraid that there's something wrong with your sample data. However, you could do something like this.

    SELECT productdate,

    MAX(CASE WHEN personname = 'Jasper' THEN productname END) Jasper,

    MAX(CASE WHEN personname = 'Milo' THEN productname END) Milo

    FROM @OrderDetail

    GROUP BY productdate

    If you want to make it dynamic, please check the following articles

    Cross Tabs and Pivots, Part 1 – Converting Rows to Columns[/url]

    Cross Tabs and Pivots, Part 2 - Dynamic Cross Tabs[/url]

    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