首页 > 解决方案 > 为什么我使用以下代码收到语法错误

问题描述

我正在使用以下语句来开发一个简单的查询。不幸的是,当我运行该页面时,我不断收到语法错误。如果我取出 RaisedInvoice Select 或 Transaction Sum 元素中的任何一个,它可以工作,但当两者都在时失败。这一定是愚蠢的,所以我可以为我的愚蠢错误提前道歉。

SELECT 
RaisedInvoices.[Invoice Number], SUM(Transactions.sellgross) AS SumOfsellgross 
FROM (RaisedInvoices LEFT JOIN Customers ON RaisedInvoices.[Customer WORef] = Customers.WORef) 
LEFT JOIN Transactions ON RaisedInvoices.[Invoice Number] = Transactions.invnumber

标签: sql

解决方案


您正在聚合一列而不是另一列。在这种情况下,您需要GROUP BY在非聚合列中包含一个子句。

例如:

SELECT 
  RaisedInvoices.[Invoice Number], -- not aggegated
  SUM(Transactions.sellgross) AS SumOfsellgross -- aggregated
FROM RaisedInvoices 
LEFT JOIN Customers 
      ON RaisedInvoices.[Customer WORef] = Customers.WORef
LEFT JOIN Transactions 
      ON RaisedInvoices.[Invoice Number] = Transactions.invnumber
GROUP BY RaisedInvoices.[Invoice Number] -- added GROUP BY here

推荐阅读