我有一个表,结构如下:
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查询?
谢谢!
可以通过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
有未知的值,最好动态执行