Friday, August 27, 2010

Transpose rows into column. Example

mysql> select * from site_parts;
+---------+-----------+------+
| site | part | qty |
+---------+-----------+------+
| Sunrise | HD500 | 50 |
| Sunrise | NIC1000 | 10 |
| Miami | HD500 | 20 |
| Miami | Monitor20 | 10 |
| Miami | HD500 | 5 |
| NY | Mouse | 40 |
+---------+-----------+------+
6 rows in set (0.00 sec)

mysql> select
site,
sum(if(part='HD500',qty,0)) as HD500,
sum(if(part='NIC1000',qty,0)) as NIC1000,
sum(if(part='Monitor20',qty,0)) as Monitor20,
sum(if(part='Mouse',qty,0)) as Mouse
from
site_parts group by site;

+---------+-------+---------+-----------+-------+
| site | HD500 | NIC1000 | Monitor20 | Mouse |
+---------+-------+---------+-----------+-------+
| Miami | 25 | 0 | 10 | 0 |
| NY | 0 | 0 | 0 | 40 |
| Sunrise | 50 | 10 | 0 | 0 |
+---------+-------+---------+-----------+-------+
3 rows in set (0.00 sec)

No comments:

Post a Comment