What's the database you're using?
For SQL Server, I found that they have a nice
PIVOT
operation. See
http://www.mssqltips.com/sqlservertip/1019/crosstab-queries-using-pivot-in-sql-server-2005/[
^]
You can also use standard SQL CASE statement for this purpose too. See
http://www.simple-talk.com/sql/t-sql-programming/creating-cross-tab-queries-and-pivot-tables-in-sql/[
^]
SELECT date,
SUM(a) a_total,
SUM(b) b_total,
SUM(c) c_total,
SUM(d) d_total
FROM (SELECT date,
CASE WHEN product = 'A' THEN values ELSE 0 END a,
CASE WHEN product = 'B' THEN values ELSE 0 END b,
CASE WHEN product = 'C' THEN values ELSE 0 END c,
CASE WHEN product = 'D' THEN values ELSE 0 END d
FROM product)
group by date;