Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用ACCESS数据库进行SQL联接和求和_Sql - Fatal编程技术网

使用ACCESS数据库进行SQL联接和求和

使用ACCESS数据库进行SQL联接和求和,sql,Sql,我是一个新手程序员,对SQL的了解非常有限。我已经尝试了几个小时,阅读了所有我能找到的资源,但似乎不知道如何连接这两个表并使用ACCESS数据库获取发票总价值 TblInvoices CustomerIDInvoiceAmount tbl客户 CustomerIDCustomerNameCustomerRep 我所需要的只是客户名称、他们的代表和发票的总价值(在某些日期之间可以,但我已经破解了这一点)。我尝试过内部连接和其他我能找到的东西,但运气不好 作为一个想法 "SELECT Custome

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

TblInvoices

CustomerID
InvoiceAmount

tbl客户

CustomerID
CustomerName
CustomerRep

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

作为一个想法

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

任何帮助都将不胜感激。

您当前的查询已结束,但由于您在选择中有
CustomerName
CustomerRep
,因此您需要
分组方式
这些列:

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要求在使用聚合时,选择列表中出现的任何列都包括在聚合函数中或
GROUP BY
子句中。如果只希望按
客户ID
分组,则还可以使用子查询来获得结果:

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 

这可能很方便。。我知道它的sql,但它仍然会给你一些关于这个概念的想法…非常感谢你-我真的很感谢你的时间。现在这是有道理的,解决了我的问题。我想我可以从这里添加WHERE标准。