MySQL总结了一列和一列两列

时间:2014-08-14 05:04:51

标签: php mysql sql

我有一张下面结构的表格:

Product       | Status        | Quantity
____________________________________________

P001          | 1             | 50
P001          | 1             | 30
P001          | 2             | 40
P001          | 2             | 60 

我想按产品和状态总计数量。 结果将是:

Product       | Status 1 QTY   | Status 2 QTY
____________________________________________

P001          | 80             | 100

以上是否可以在一个sql查询中完成?

谢谢!

1 个答案:

答案 0 :(得分:2)

可以通过CASE声明完成。

SELECT Product,
       SUM(CASE WHEN Status = 1 THEN Quantity ELSE 0 END) `Status 1 QTY`,
       SUM(CASE WHEN Status = 2 THEN Quantity ELSE 0 END) `Status 2 QTY`
FROM   TableName
GROUP  BY Product

如果Status的值数量未知,最好动态执行。