我有2个数据表。SQL计数和总数问题
第一张表cus
包含客户数据。第二张表invoice
包含由客户创建的发票。
我想选择总共创建的发票和每位客户的发票总额。
以下是我有:
SELECT cus.cus_id, cus.name_cus, count(invoice.id) as id2, CONCAT('€ ', ROUND(SUM(invoice.total),2)) as total, cus.id
FROM cus
LEFT OUTER JOIN invoice ON cus.cus_id = invoice.cus_id
WHERE cus.user_id='2'
GROUP BY cus.cus_id
为了验证这一点,我添加了一些数据,我的数据库。第一位客户有2张发票,总金额为100(50 + 50)。 第二位客户有3张发票,总金额为30(10 + 10 + 10)。
但SQL代码不会显示我这些结果。
的响应客户1:总发票= 1,总= 50 的响应客户1:总发票= 0,总=(空)
是否有人知道什么是错我的SQL声明?
我使用的数据库类型是MySQL。
这里有一个例子:http://sqlfiddle.com/#!9/a9f9f/1
不知道这是什么类型的数据库,但我很惊讶,它按原样运行。您正在选择不在组中的列。另外你的where子句使用的是cus.user_id而不是cus_id – Simon
数据库是mysql。 user_id是别的东西。对于两个客户,'user_id ='2'' – John
您能否提供样本数据?您声明客户2有3张发票。我们可以用那种风格的数据。似乎问题是数据相关和/或您的连接逻辑不正确。 –