【问题标题】:SUM Multiple Columns by Group BY按 Group BY 对多列求和
【发布时间】:2020-01-13 03:15:22
【问题描述】:

我的数据库中有这些数据

Purchase ID: 0012 <br>
Product: 1 <br>
Delivered: 100

Pruchase ID: 0013<br>
Product: 1<br>
Delivered: 10

当我对相同的产品求和时,它应该是 110 但是当我使用这个查询时,总和将是 440

SELECT `purchase_orders`.`product`, SUM(purchase_orders.delivered) as system_count, `products`.`code`
FROM `purchase_orders`
JOIN `products` ON `products`.`id` = `purchase_orders`.`product`
WHERE `purchase_orders`.`delivery_status` = 4
GROUP BY `purchase_orders`.`product`

谁能帮助我我的 SQl 出了什么问题?

【问题讨论】:

  • 嗨,Hayle,您的第一个内部连接错误:products.id` = purchase_orders.product。它应该是产品到产品。但这还不足以解释问题。表的完整架构和更多数据会有所帮助。例如,您使用列 delivery_status 但它不存在于您对表格的描述中。我们很难在信息很少的情况下获得并找到解决方案
  • @hayle 。 . .没有样本数据和期望的结果,我认为没有人能真正提供帮助。

标签: php sql codeigniter sum


【解决方案1】:

你也应该GROUP BYproducts.code

如下图

SELECT `purchase_orders`.`product`, SUM(purchase_orders.delivered) as system_count, `products`.`code`
FROM `purchase_orders`
JOIN `products` ON `products`.`id` = `purchase_orders`.`product`
WHERE `purchase_orders`.`delivery_status` = 4
GROUP BY `purchase_orders`.`product`, `products`.`code`

【讨论】:

    【解决方案2】:
    select po.Product, sum(po.Delivered) as count from purchase_orders po
    group by po.Product
    

    【讨论】:

      猜你喜欢
      • 2011-02-14
      • 2020-06-04
      • 2015-09-22
      • 1970-01-01
      • 1970-01-01
      • 2016-11-12
      • 1970-01-01
      • 2011-10-21
      • 1970-01-01
      相关资源
      最近更新 更多