2013-12-08 2 views
1

다음 SQL 쿼리에 어떻게 참여할 수 있습니까?합계가있는 mysql 테이블에 가입하는 방법

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 절이 없으면 불일치입니다.

My expectpectation 결과에 따라 각 recordID의 균형 및 양이 표시됩니다.

감사와 안부, 모든 제안 & 질문 환영

당신이 어떻게 GROUP BY clause를 사용하여 해당 컬럼에 대한 집계를 수행하는 SQL을 말할 필요가 당신의 SELECT 문에 집계 함수를 사용했다

답변

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 문에 집계 함수 (COUNT,MAX, MIN, SUM, AVG)을 사용한 경우 해당 SELECT에있는 다른 모든 집계 함수에 해당 문 집합의 MUST come in GROUP BY 절에 포함되어 있지 않습니다.

+0

위대한 작품 예상대로 잘 작동하는 모하메드 알리는 대답을 곧 표시 할 것입니다 – user2985621

+0

@ user2985621 괜찮 았던 점이 도움이 되셨습니다 :) –

0

계산 대상을 명확하게하지 않아 SQL statemant가 작동하지 않습니다. sum() 또는 max() 또는 min() 또는 이와 유사한 것을 사용하면 성명서에서 그룹을 사용해야합니다. 그래서 예. 당신은 단지 하나 개의 고객을 확인 wan't 경우는 SQL의 clouse "haveing"를 사용해야

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

그리고 :이 같은 것을 사용하여 고객이 상점에서 구매 금액의 합계를 계산하려면 . 이 경우 어디서 작동하지 않습니다.

+0

감사의 말을 공유해 주셔서 감사합니다. 설명을 주셔서 감사합니다. – user2985621

관련 문제