如何使用Sum连接mysql表


How to Join mysql Tables With Sum

如何加入以下SQL查询?

SELECT SUM( payments.amount ) , SUM( payments.balance ) , records.recordID, records.record
FROM fees AS payments
INNER JOIN recordtype AS records ON payments.referenceID = records.recordID

上面的查询给出了以下错误

MySQL表示:文档

1140-GROUP列的混合(MIN()、MAX()、COUNT()…)如果没有GROUP BY子句,则不包含GROUP列是非法的

我的预期结果希望每个记录ID都显示余额和金额。

谢谢和问候,所有的建议&欢迎提问

SELECT SUM( payments.amount ) , SUM( payments.balance ) , records.recordID, records.record
FROM fees AS payments INNER JOIN recordtype AS records 
ON payments.referenceID = records.recordID
GROUP BY records.recordID, records.record

当您在SELECT语句中使用了聚合函数时,您必须告诉sql如何使用GROUP BY clause、在该列上进行聚合

简单的经验法则,当您在SELECT语句中使用聚合函数(COUNT,MAX, MIN, SUM, AVG)时,该SELECT中的任何其他列都不包含在该语句的任何聚合函数MUST come in GROUP BY子句中。

您的SQL语句将不起作用,因为您没有明确说明要计算的内容。如果您使用sum()、max()或min()或类似的东西,则必须在语句中使用groupby。因此,例如,如果你想计算你的顾客在你的商店里购买的金额的总和,可以使用这样的东西:

SELECT SUM( payments.amount )
FROM payments
inner join customer on payments.customer_id = customer.id 
GROUP BY customer.id

而且,如果您不想只检查一个客户,则必须使用SQL clouse"haveing"。在那种情况下哪里不起作用。