0

我是一个新手程序员,对 SQL 的了解非常有限。我已经尝试了几个小时并阅读了我能找到的所有资源,但似乎无法弄清楚如何加入这两个表并使用 ACCESS 数据库获取总发票价值。

TblInvoices

CustomerID InvoiceAmount

客户

CustomerID CustomerName CustomerRep

我需要的只是客户名称、他们的代表和他们的发票总价值(在某些日期之间可以,但我已经破解了那一点)。我已经尝试过 Inner Joins 和其他我能找到的东西,但运气不佳。

作为一个想法...

"SELECT CustomerName, CustomerRep, Sum(InvoiceAmount) AS INVOICETOTAL
FROM TblCustomers, TblInvoices WHERE TblCustomers.CustomerID = TblInvoices.CustomerID
GROUP BY CustomerID"

任何帮助将不胜感激。

4

1 回答 1

1

您当前的查询已关闭,但由于您有CustomerName并且CustomerRep在 SELECT 中您需要GROUP BY这些列:

SELECT TblCustomers.CustomerName, 
  TblCustomers.CustomerRep, 
  Sum(TblInvoices.InvoiceAmount) AS INVOICETOTAL 
FROM TblCustomers
INNER JOIN TblInvoices 
  ON TblCustomers.CustomerID = TblInvoices.CustomerID 
GROUP BY TblCustomers.CustomerName, TblCustomers.CustomerRep;

MS Access 要求出现在 SELECT 列表中的任何列都包含在聚合函数或使用聚合GROUP BY时的子句中。如果您只想GROUP BY使用CustomerId,那么您还可以使用子查询来获取结果:

SELECT c.CustomerName, 
  c.CustomerRep, 
  i.INVOICETOTAL 
FROM TblCustomers c
INNER JOIN
(
  SELECT Sum(InvoiceAmount) AS INVOICETOTAL,
    CustomerID
  FROM TblInvoices 
  GROUP BY CustomerID
) i
  ON TblCustomers.CustomerID = i.CustomerID 
于 2013-04-29T11:13:33.907 回答