0

我正在做一个关于 SQL 查询的练习,但在 SUM 方面出现了一个错误。我知道它是做什么的,但我不知何故得到了一个错误......

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,真的不知道如何很好地使用它。任何帮助都会很棒!

4

1 回答 1

1

您还没有给出ClientBankandBank表的结构。我认为您插入了类似这样的记录:

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;
于 2014-10-02T19:26:28.923 回答