【问题标题】:How do MySQL aggregate sum function with two different data tables?MySQL如何对两个不同的数据表进行聚合求和函数?
【发布时间】:2021-09-25 04:44:04
【问题描述】:

 SELECT
    category_id,
    product_size,
    category_name,
    SUM(product_quantity) AS total_quantity
FROM tbl_categories_quantity  -- (table-1)
INNER JOIN tbl_categories USING (category_id)
GROUP BY category_id,product_size

上面的代码在一个表中工作,我想添加下面不起作用的代码(第二个表)

SELECT
    category_id,
    product_size,
    SUM(product_sell) AS total_sell
FROM tbl_product_sell -- (table-2)
GROUP BY category_id,product_size;

【问题讨论】:

  • 类别 1 的多个值,其中其他值是唯一的。有可能吗?
  • 添加了额外的截图#Rahul Biswas
  • 请检查我下面的答案。
  • #Mr. Rahul Biswas 你的重播帖子不见了。
  • 我的帖子对你有帮助吗?请在下面查看我的查询。

标签: mysql sum aggregate


【解决方案1】:

first 子查询检索类别和产品大小的总 quantitysecond 检索总 sales类别和产品尺寸。然后将这两个子查询与 LEFT JOIN 结合起来,因为有时可能不会发生销售。 COALESCE() 用于将 NULL 值替换为 0(零)。如果需要特定类别或产品尺寸明智的数据,则在两个子查询中使用 WHERE 子句。由于类别 ID 是唯一的,因此使用 MAX(category_name) 否则类别名称必须放在 GROUP BY 子句中。 计算可用数量从总数量中减去总销售额。

   -- MySQL
    SELECT t.category_name category
         , t.product_size
         , t.product_quantity
         , COALESCE(p.total_sell, 0) product_sell
         , (t.product_quantity - COALESCE(p.total_sell, 0)) available_in_stock
    FROM (SELECT tc.category_id
               , tcq.product_size
               , MAX(tc.category_name) category_name
               , SUM(tcq.product_quantity) product_quantity
          FROM tbl_categories tc
          INNER JOIN tbl_categories_quantity tcq
                  ON tc.category_id = tcq.category_id 
          GROUP BY tc.category_id
                 , tcq.product_size) t
    LEFT JOIN (SELECT category_id
                    , product_size
                    , SUM(product_sell) total_sell
               FROM tbl_stock_sell
               GROUP BY category_id
                      , product_size) p
           ON t.category_id = p.category_id
          AND t.product_size = p.product_size

请查看网址https://dbfiddle.uk/?rdbms=mysql_5.7&fiddle=b8c54aa656d9dc930fcb7a93d2bc0960

注意:表名或列名可能因您的数据库而异。

【讨论】:

  • 错误消息#Rahul Biswas
  • 请给我错误信息。 @MaungChang
  • 警告:mysqli_error() 只需要 1 个参数,0 给出
  • 有关此的任何更新。
  • 共有三个表,这是一个聚合函数。 1. tbl_categories for Inner Join ( category Name) 2. tbl_categories_quantity for Product Quantity and Product size 3. tbl_product_sell table 用于计算可用库存 我将分享截图。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-25
  • 1970-01-01
  • 2018-02-16
  • 1970-01-01
相关资源
最近更新 更多