Sql 使用access数据库进行计数和联接

Sql 使用access数据库进行计数和联接,sql,ms-access,Sql,Ms Access,对不起,这对你们来说很简单,但我已经挣扎了很久了: 我有两个表公司和报价。companys表包含该公司的代表,我正在尝试按代表获取每个公司的报价数量。这两个表通过companys表中的'Ref'和quotes表中的'CompanyRef'链接 在一个完美的世界中,列表将类似于: Rep, Company, (Quote Count) 我认为我最接近的是: SELECT Companies.Rep, Companies.Company, COUNT(Quotes) A

对不起,这对你们来说很简单,但我已经挣扎了很久了:

我有两个表
公司
报价
。companys表包含该公司的代表,我正在尝试按代表获取每个公司的报价数量。这两个表通过companys表中的'Ref'和quotes表中的'CompanyRef'链接

在一个完美的世界中,列表将类似于:

Rep,         Company,       (Quote Count)
我认为我最接近的是:

SELECT Companies.Rep, Companies.Company, COUNT(Quotes) AS [Quote Count] 
FROM Companies    
INNER JOIN Quotes ON Companies.Ref = Quotes.CompanyRef 
GROUP BY Companies.Rep, Companies.Company 
ORDER by Count(Quotes) Desc
但我只是想

参数太少,应为1

我还要提到的是,并不是每个公司都有代表


非常感谢您的帮助。Steve。

在Count子句中不要使用表名,但要指明要计数的列(使用*表示“不在乎”)。如果在计数函数中有表的名称,access将尝试查找具有该名称的字段

SELECT Companies.Rep, Companies.Company, COUNT(*) AS [Quote Count] 
FROM Companies    
INNER JOIN Quotes ON Companies.Ref = Quotes.CompanyRef 
GROUP BY Companies.Rep, Companies.Company 
ORDER by Count(*) Desc

感谢rene,但现在我得到了:查询表达式“COUNT(Quotes.*)中的语法错误,我必须在返回时忽略一些明显的内容:…因为返回的参数太少。预计1按(计数(*)的顺序对该Rene进行一次小的更改,结果成功了!拍拍自己的背,谢谢你。