mysql sum没法使用_mysql – SQL – 无法正确计算SUM

我一直在尝试这个SQL语句.

我有一个销售数据库,我需要做的就是:

SELECT

SUM(orders.total) as total, orders.transaction_date as date,

orders.id as orderid, orders.employee_id as empl

from orders GROUP by orders.employee_id

这个查询很完美,它给了我所需要的一切.但是,我需要添加到目前为止已销售的数量,以便与此查询相对应:

SELECT order_id, SUM(quantity)

FROM order_items

Group By order_id

哪个也好.两者都很完美,但我需要将它们放入一个sql语句中.

当我尝试

SELECT

SUM(order_items.quantity),

SUM(orders.total) as total,

orders.transaction_date as date,

orders.id as orderid,

orders.employee_id as empl

from

orders, order_items

where

order_items.order_id = orders.id

GROUP by

orders.employee_id

除了总数之外,一切似乎都是正确的.我不知道为什么会这样.

这是DB

命令:

id | employee_id | transaction_date | total

ORDER_ITEMS:

order_id | quantity

最佳答案 在将两个表连接在一起之前,需要单独聚合这两个表:

select sum(oi.quantity), sum(o.total) as total,

o.employee_id as empl

from orders o join

(select oi.order_id, sum(oi.quantity) as quantity

from order_items oi

group by oi.order_id

) oi

on oi.order_id = o.id

group by o.employee_id;

在select中包含交易日期和订单ID没有意义.您按员工ID进行聚合,因此这些列可能(可能是)多个值.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值