To take rows of data and put them into columns for timeline, types of products, etc. is the creation of a cross tab query. There is a standard for doing this and it is called the Standard ANSI-SQL Crosstab and you can see samples of this at http://www.paragoncorporation.com/ArticleDetail.aspx?ArticleID=25. Microsoft Access uses cross tab query and in Microsoft SQL Server 2005 the Pivot and
. Unpivot predicates were introduced and Pivot is similar to the way Access does Transform Pivot approaches. For more elaborate examples of how the Pivot and Unpivot work on a SQL Server see the site at http://blog.sqlauthority.com/2008/10/01/sql-server-example-of-pivot-unpivot-cross-tab-query-in-different-sql-server-versions/. For a great article on dynamic cross tab queries see the site at http://www.sqlmag.com/Articles/ArticleID/15608/15608.html?Ad=1 by Itzik Ben-Gan who holds a T-SQL Black Belt.