当前位置: 首页 > 知识库问答 >
问题:

来自两个联接表和多行的MySQL总和-需要显示总计或所有行

朱炜
2023-03-14

我有以下查询,在列出每个订单的总价时效果很好(感谢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,但这返回错误的价格。我想它把所有的商品都加对了,但只加了一次邮资。

  • 已订购的项目-包括所有已订购的项目(因此可以有多行)
  • 订单-包括订单的邮资价格(这里每个订单只有一行)

非常感谢您的帮助。

共有1个答案

史弘致
2023-03-14

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

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修饰符和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 ;
 类似资料:
  • 我对以下查询有问题: 这个想法是把包括邮资在内的订单总价拿回来。 已订购的项目-包括所有已订购的项目(因此可以有多行) 订单-包括订单的邮资价格(这里每个订单只有一行) 我遇到的问题是,如果订单中包含多个“ordered_items”项目,则上述金额会多次计算“orders”中的邮资。 如何重写此查询,使邮资只计算一次? 提前感谢任何帮助。

  • 问题内容: 我有一个具有许多行的mysql表,并且在每一行中都有一个称为“值”的字段,该字段的值在行与行之间会有所不同。我想要的是选择所有行并计算所有“值”字段的总和。 任何的想法? 问题答案: 你是这个意思吗 如果您有多个要返回的列,只需将每个非聚合(即求和)行添加到子句中:

  • 我有两个mysql表: 我想从表:loan中获取“loan\u amount”的和,从表:advance中获取“advance\u amount”的和,在一个由内部联接连接的mysql查询中。 如何从两个表的列中求和?

  • 问题内容: 我想添加代表其他表计数的列。 我有3张桌子。 留言内容 主题 星星_吉文 我要结束于: Topic_Review 因此,基本上我想在3列中附加唯一值的计数(每个主题中给定的星数,在主题中具有消息的唯一用户以及每个主题中的唯一消息数)。 我希望最终也能够过滤类别(在两列中均可见)。 此外,我最终希望按加入的人数进行排序。例如,我将要有一个按钮,该按钮按升序按“星数”排序,或按降序按“用户

  • 我有两张桌子。与文章编号相关的图像。还有一张照片上有文章编号 我想要做的是列出第一个表中的所有图像(navn)(它是一个特定的文章编号(art_id))和第二个表中的最多5个图像(其中文章编号(artid)出现在照片(fotostation)上)。 (我现在不知道该怎么做:) 这不起作用 表格: 这些表与fotostation字段相关。要在“ECS_article_images_inneholde

  • 对于这个问题,我找到了一些不同的答案,但似乎无法使查询正常工作。 这是我的表,其中包含user、weekNo、salesTotalYTD列。 我目前正在把这些拿出来,按周分组,就像这样: 我试图做但无法完成的是: 这是我为第一次通过工作的查询,但之后的每一次通过都是错误的: 更新 更新代码由蒂姆提供,但返回错误: