gpt4 book ai didi

mysql - 使用带有 sum 的内连接时出现问题

转载 作者:行者123 更新时间:2023-11-29 16:57:32 24 4
gpt4 key购买 nike

我有两 (2) 个表:ps_wk_mp_seller_transaction_history

enter image description hereps_wk_mp_seller_order_status

enter image description here

仅当 current_state = 5 时,我才想对 seller_amount 进行总计

为此我写了这个:

select sum(seller_amount) as seller_amount
from ps_wk_mp_seller_transaction_history th inner join
ps_wk_mp_seller_order_status os
on os.id_order = th.id_transaction and
os.current_state = 5 and
th.id_customer_seller = 2;

对于 id_customer_seller=2,我得到这个4984.020000 (4950+34.02),它是准确的

但是对于 id_customer_seller=5,我得到的是 25.848000 而不是 NULL

有人可以帮助我吗?

也许你可以自己测试一下,代码是:https://github.com/kulturman/fakerepo

最佳答案

首先,您的记录存在一些逻辑问题,id_transaction有两笔具有相同id_transaction但金额不同且状态不同的交易!因此 ID 为 41 的交易具有状态 5,这就是为什么客户 5 不会为 null,因为 41 处于状态 5。

解决这个问题

每笔交易的交易id必须是唯一的id,以便区分交易状态和金额

查询应该是这样的

select sum(seller_amount) as seller_amount
from ps_wk_mp_seller_transaction_history th
left join ps_wk_mp_seller_order_status os
on os.id_order=th.id_transaction
where
th.id_customer_seller = 2
and os.current_state=5

工作示例here

关于mysql - 使用带有 sum 的内连接时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52446753/

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