我有我的第一张表,其中包含有关客户的购买信息。因此,如果客户购买两个对象(电视和电话),则会添加以下两行:
第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',日期= ...,时间= ...
这些名称在 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;
结果是:
我真正想要的是将这两个表组合在一起,这样我就可以看到我们还有多少来自每个客户端,我们希望看看他这个月是否支付任何费用他或她的对象将他置于 NOT PAID LIST
我尝试过这个查询,但没有得到逻辑结果:
SELECT t1.client_name, sum(total_debts), sum(payment) FROM
client_debts t1 INNER JOIN client_details t2 GROUP BY t1.client_name;
结果是:
我们非常感谢您提供帮助,以便更正此错误以及如何在此月份列表中付费
答案 0 :(得分:0)
您忘记检查两个表中匹配同一客户端的条件。使用以下查询
SELECT t1.client_name, sum(total_debts), sum(payment) FROM
client_debts t1 INNER JOIN client_details t2
ON t1.ID=t2.client_id GROUP BY t1.client_name;
答案 1 :(得分:0)
您可以尝试以下查询,但建议您使用客户端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