gpt4 book ai didi

来自两个连接表和多行的 MySQL 总和 - 需要取出全部或所有行

转载 作者:行者123 更新时间:2023-11-29 06:53:44 25 4
gpt4 key购买 nike

我有以下查询,在显示每个订单的总价时效果很好(感谢 stackoverflow 社区):

SELECT sum((ordered_items.price + ordered_items.vat) * ordered_items.qty) + orders.postage_price + orders.postage_vat as total_price
FROM orders
JOIN ordered_items
ON orders.id_orders = ordered_items.order_id
GROUP BY orders.id_orders

但是我还想把所有订单加在一起的总金额拿出来。我试过取消 GROUP BY 但这返回了错误的价格。我认为它正确地添加了所有项目,但随后只添加了一个邮资。

  • ordered_items - 包括所有订购的商品(因此可以有多行)
  • 订单 - 包括订单的邮费(此处每个订单只有一行)

非常感谢您的帮助。

最佳答案

也许我遗漏了一些东西,但是,您不能将其放在子查询中以获取所有订单的总计:

SELECT sum(total_price) TotalAllOrders
FROM
(
SELECT sum((ordered_items.price + ordered_items.vat) * ordered_items.qty)
+ orders.postage_price + orders.postage_vat as total_price
FROM orders
JOIN ordered_items
ON orders.id_orders = ordered_items.order_id
GROUP BY orders.id_orders
) src ;

您还可以使用 group by 修饰符 WITH ROLLUP 同时获得总金额和每个订单的金额:

  SELECT sum((ordered_items.price + ordered_items.vat) * ordered_items.qty) 
+ orders.postage_price + orders.postage_vat as total_price
FROM orders
JOIN ordered_items
ON orders.id_orders = ordered_items.order_id
GROUP BY orders.id_orders
WITH ROLLUP ;

关于来自两个连接表和多行的 MySQL 总和 - 需要取出全部或所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14002163/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com