为什么我使用以下代码收到语法错误

时间:2021-04-08 12:55:55

标签: sql

我正在使用以下语句来开发一个简单的查询。不幸的是,当我运行该页面时,我不断收到语法错误。 如果我取出 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

2 个答案:

答案 0 :(得分:2)

您正在聚合一列而不是另一列。在这种情况下,您需要在非聚合列中包含一个 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

答案 1 :(得分:0)

根据您的查询,我会说您不需要与客户表的连接。

我会这样写:

$query = "SELECT RaisedInvoices.[Invoice Number], SUM(Transactions.sellgross) AS SumOfsellgross FROM RaisedInvoices LEFT JOIN Transactions ON RaisedInvoices.[Invoice Number] = Transactions.invnumber";

但是,我不确定 PDO 会接受方括号语法。

相关问题