我有我的第一个表,其中包含有关客户的购买信息。因此,如果客户购买两个对象(电视和电话),则会添加 2 行,如下所示:
第 1 行:
ID = 12321, client_name = 'X', total_debts = 560, sale_type = 'TV LG 40'' ', date =..., time =...
第 2 行:
ID = 34564, client_name = 'X', total_debts = 700, sale_type = 'iPhone', date =..., time =...
这些信息被输入到名为client_debts的表中
现在我有第二个表,它控制每个客户的付款。因此,当 X 先生来支付他的总金额 1260 美元(本月仅支付 200 美元)时,它将被添加到 client_details 中,如下所示:
id = 8642234, client_id = 34564, client_name = 'X', payment = 200, date_now =..., time_now=...
我不在乎他分期付款的商品是哪个,所以我添加了 client_id,即最后一次购买的 id。
我想要比较每个客户的总债务和他的总付款。所以我单独尝试了每个查询:
SELECT client_name, sum(total_debts) FROM alamir_store.client_debts GROUP BY client_name;
我得到了这个结果:
第二个查询是:
SELECT client_name, sum(payment) FROM client_details GROUP BY client_name;
结果是:
我真正想要的是将这两个表合并在一起,这样我就可以看到我们还从每个客户那里得到了多少钱,我们想看看他本月是否支付了任何费用是否愿意将他列入我们的未付款名单
我尝试过这个查询,但没有得到逻辑结果:
SELECT t1.client_name, sum(total_debts), sum(payment) FROM
client_debts t1 INNER JOIN client_details t2 GROUP BY t1.client_name;
结果是:
感谢任何帮助,以纠正此错误以及如何制作本月尚未付款列表
最佳答案
您可以尝试下面的查询,但建议您使用客户端 ID 进行连接:
select td1.client_name,td1.TotalDebt,td2.TotalPayment from (SELECT client_name, sum(total_debts) as TotalDebt FROM client_debts GROUP BY client_name) as td1
inner JOIN
(SELECT client_name, sum(payment) as TotalPayment FROM client_details GROUP BY client_name) as td2
on td1.client_name=td2.client_name
关于mysql - sum 函数不正确的值和本月尚未付款的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34788550/