如何加入以下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显示余额和金额。
感谢和问候,所有建议&欢迎提出问题
答案 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”。在那种情况下哪里不起作用。