为了简化,我有树表:products
,products-vs-orders
,orders
如何分组并统计在一行中?
products
字段: '产品ID', '姓名', 'isGratis',...products-vs-orders
字段: '产品ID',“订单ID”orders
字段: '订单ID', '标题',...
其实,我有这样的查询:
SELECT orders.OrderID, orders.Title, COUNT(`products`.`isGratis`) AS "Quantity", `products`.`isGratis`
FROM `orders`, `products-vs-orders`, `products`
WHERE `orders`.`OrderID` = `products-vs-orders`.`OrderID` AND `products-vs-orders`.`ProductID` = `products`.`ProductID`
GROUP BY `products`.`PackID`, `products`.`isGratis`
这个查询工作,并返回这个需要收费的结果:
OrderID, Title, Quantity, isGratis
1 My Order 20 0
1 My Order 3 1
2 An other 8 0
2 An other 1 1
我怎样才能到单独的cols检索产品“免费”和“支付”的计数?
OrderID, Title, Qt Paid, Qt Gratis
1 My Order 20 3
2 An other 8 1
,因为你被products.PackID分组您的查询不应该工作,你的选择有orders.OrderID和orders.Title,它们都不在你的GROUP BY子句中。我认为你复制并粘贴错误。 – 2011-03-20 16:08:23