如何使用Sum加入mysql表

时间:2013-12-08 13:31:45

标签: php mysql sql

如何加入以下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 BY子句,则将GROUP列(MIN(),MAX(),COUNT(),...)与没有GROUP列混合是非法的

我的期望结果会让每个recordID显示余额和金额。

感谢和问候,所有建议&欢迎提出问题

2 个答案:

答案 0 :(得分:1)

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子句中。

答案 1 :(得分:0)

您的SQL状态将无法正常工作,因为您尚未明确要计算的内容。如果使用sum()或max()或min()或类似的东西,则必须在语句中使用group by。所以,例如如果您想计算客户在您的商店购买的金额总和,请使用以下内容:

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

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