MySQL:如何列出一列并对另一列求和?

MySQL:如何列出一列并对另一列求和?,mysql,sum,Mysql,Sum,我正在使用以下SQL: SELECT a.name as accountName, SUM((i.value - i.paidValue)) as oneMonth FROM insertions i JOIN contracts c ON i.contractId = c.id JOIN accounts a ON c.accountId = a.id WHERE i.value > i.paidValue AND i.isDeleted is

我正在使用以下SQL:

  SELECT
    a.name as accountName,
    SUM((i.value - i.paidValue)) as oneMonth
  FROM insertions i
  JOIN contracts c ON i.contractId = c.id
  JOIN accounts a ON c.accountId = a.id
  WHERE i.value > i.paidValue
    AND i.isDeleted is FALSE
    AND i.isCanceled is FALSE
    AND i.month = 8
    AND i.year = 2013
它应该产生如下输出:

accountName | oneMonth
CompanyA    | 3000 [ which is a sum of 1000, 1000, 1000 ]
CompanyB    | 1000
但它所做的是:

accountName | oneMonth
CompanyA    | 4000 

我做错了什么

您忘记了GROUPBY子句

GROUP BY a.id

这会有用的。

你忘了a组。你说得太对了。如果你把它作为一个答案提交,我会接受你的代表。谢谢伙计
SELECTa.name as accountName,SUM((i.value - i.paidValue)) as oneMonth
   FROM insertions i
JOIN contracts c ON i.contractId = c.id
JOIN accounts a ON c.accountId = a.id
   WHERE i.value > i.paidValue
    AND i.isDeleted is FALSE
    AND i.isCanceled is FALSE
    AND i.month = 8
    AND i.year = 2013
Group by a.name