【发布时间】:2014-08-19 22:09:02
【问题描述】:
我正在检索 销售记录及其订购的产品。我想根据其 order_id 对 product_price 的所有相加或求和
我当前的查询如下所示:
问题:当我输入 SUM(bsb.PRICE) 时,MySql 正在合并所有产品价格。
这是我使用的查询:
SELECT * FROM (
SELECT bsb.ORDER_ID AS order_id, bsd.PRICE AS shipping_total, SUM(bsb.PRICE) AS product_price, '' AS order_total
FROM b_sale_basket bsb
INNER JOIN b_sale_order bso ON bso.ID = bsb. ORDER_ID
INNER JOIN b_sale_delivery bsd ON bso.DELIVERY_ID = bsd.ID
INNER JOIN b_sale_pay_system bsps ON bso.PAY_SYSTEM_ID = bsps.ID
WHERE bsb.ORDER_ID IN (255, 300)
) sales_order
注意:我想要的输出是根据其 order_id 对所有 product_price 求和。所以最终输出应该有 2 行而不是 1 行
请帮帮我……
【问题讨论】:
-
你错过了
GROUP BY子句 - 你需要告诉 MySQL 你想如何对聚合数据进行分组! -
只需添加
group by bsb.ORDER_ID的群组 -
就像你使用聚合函数时的一个注释,也就是 COUNT() SUM() MAX() MIN()... 等等。让我们只使用 SUM(),因为你是...... mysql 获取所有行并将它们“汇总”到特定列上。如果您不添加 GROUP BY.. 那么它将合并所有行... GROUP BY 告诉 mysql 您要对特定于另一列的数据求和,即您的订单
标签: mysql database group-by sum sql-order-by