2014-10-02 82 views
0

我正在做一個有關SQL查詢的練習,並提出了一個錯誤,當談到SUM。我知道什麼是沒有,但我有點得到一個錯誤......如何在SQL查詢計數工作

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

我試圖做一個Group BY,真的不知道如何使用它..任何幫助將是偉大的!

+0

你想要的行數?客戶總數*的總和?你從COUNT(b.Total)期待什麼? – kums 2014-10-02 04:48:57

+0

我的腰椎疾病,我想總和,這是SUM和不算,但我仍然得到相同的錯誤 – user3342795 2014-10-02 16:50:33

回答

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 2014-10-02 21:34:44