2014-10-02 2 views
0

SQL 쿼리에 대해 연습하고 있는데 SUM과 관련하여 오류가 발생했습니다. 내가 않는 무엇인지 알고 있지만 어떻게 든 오류가 ...SQL 쿼리에서 count가 작동하는 방식

select 
    client.LName, client.FName, 
    COUNT(b.Total) 
from 
    ClientBank client 
INNER JOIN 
    Bank b ON (client.ClientID = b.ClientID) 
where 
    client.LName = 'name' AND client.FName = 'a'; 

그러나 나는이 오류가 ...

열 'ClientBank.LName은'선택 목록 때문에 무효이다 집계 함수 또는 GROUP BY 절에 포함되지 않습니다.

나는 그룹 BY를 해보 았지만 실제로 사용법을 잘 모르겠다. 도움이 될 것입니다.

+0

행 수를 원하나요? * 클라이언트의 합계 * COUNT (b.Total)에서 무엇을 기대합니까? – kums

+0

내 apolagies, 나는 합계와 합계가 아니라 합계가되고 싶지만 여전히 같은 오류가 발생합니다. – user3342795

답변

1

ClientBankBank 테이블의 구조를 지정하지 않았습니다. 당신이 각 클라이언트에 대한 보증금의 총을 얻을 수

INSERT INTO `ClientBank` 
(`ClientID`, `FName`, `Lname`) 
VALUES 
    (1, 'Abraham', 'Backman'), 
    (2, 'Carl', 'Dacosta'), 
    (3, 'Erwin', 'Fabio'), 
    (4, 'Gabriel', 'Haddon'); 

INSERT INTO `Bank` 
(`DepositID`, `ClientID`, `Deposit`) 
VALUES 
    (1, 1, 100), 
    (2, 2, 200), 
    (3, 3, 300), 
    (4, 4, 400), 
    (5, 2, 500), 
    (6, 3, 600); 

:

SELECT 
    client.LName, client.FName, SUM(b.Deposit) as Total 
FROM 
    ClientBank client 
INNER JOIN 
    Bank b ON (client.ClientID = b.ClientID) 
GROUP By 
    client.LName, client.FName; 

특정 클라이언트 만 원하는 경우 (자신을 사용하여 필터링 나는 당신이 기록이 같은 것을 삽입 된 것을 복용하고 고객 ID보다 이름이 름) :

SELECT 
    client.LName, client.FName, SUM(b.Deposit) as Total 
FROM 
    ClientBank client 
INNER JOIN 
    Bank b ON (client.ClientID = b.ClientID) 
WHERE 
    client.LName = 'Fabio' AND client.FName = 'Erwin' 
GROUP By 
    client.LName, client.FName; 
+0

문제를 해결하여 그룹의 성 및 이름을 모두 추가하면 지금은 바보 같아요! 큰 도움을 주셔서 감사합니다 : D – user3342795