MS Access SQL:不包括在计数中

蓝色狂想曲

背景信息:这是给一家假设的汽车租赁公司提供的。有两个与此问题有关的表格。它们被称为“职员表”和“销售职员表”。第一个表包含有关员工的信息,例如DOB等。第二个表包含以下信息:

在此处输入图片说明

Staff_ID =工作人员的唯一代码Sale_ID =特定销售的唯一代码SaleStaffMember_AssociatedWithPurchase =工作人员是否参与了首次销售或仅仅是退还汽车。

这两个表具有相同的Staff_ID。

我编写了以下SQL:

SELECT [staff table].staff_id as [Staff ID], Count([sale staff member table].staff_id) AS [Number of Rentals]
FROM [staff table]
LEFT JOIN [sale staff member table] ON [sale staff member table].staff_id = [staff table].staff_id
WHERE [sale staff member table].staff_id IS NULL or [sale staff member table].staff_id IS NOT NULL
GROUP BY [staff table].staff_id

它的作用是列出每个工作人员(一些工作人员未进行任何销售,因此不在销售工作人员表中),并在其旁边列出他们已完成的销售量:

在此处输入图片说明

我的问题是,此工作人员在技术上没有进行任何销售,但是当他应有0时,他被列为1。我理解为什么,因为我没有在SQL中编写与购买字段相关的任何内容。我尝试这样做,而我能得到的最大的就是从查询结果中完全删除该成员。但是,我想做的基本上是说:

“如果工作人员与购买无关,则不要在计数中包括此特定条目”

但是我不知道该怎么做。我尝试了一些荒谬的解决方案,并进行了查找,但最终找不到解决方案。我敢肯定它相对简单,但是过去几天我刚刚学习了SQL,所以我还不知道。

编辑:刚意识到我的where语句从字面上什么都不做哈哈,但这并不能解决任何问题,它只是使代码更整洁:

我修改后的代码:

SELECT [staff table].staff_id as [Staff ID], Count([sale staff member table].staff_id) AS [Number of Rentals]
FROM [staff table]
LEFT JOIN [sale staff member table] ON [sale staff member table].staff_id = [staff table].staff_id
GROUP BY [staff table].staff_id

谢谢!

编辑:最终答案

SELECT [Staff Table].Staff_ID AS [Staff ID], SSM.[Number of Rentals] AS [Number of Rentals]
FROM [staff table] 
LEFT JOIN (SELECT Staff_ID, nz(COUNT(Staff_ID),0) as [Number of Rentals] 
FROM [Sale Staff Member Table] 
WHERE SaleStaffMember_AssociatedWithPurchase = 1
GROUP BY Staff_ID) AS SSM
ON [Staff Table].Staff_ID = SSM.Staff_ID
蒂诺获胜

据我了解您的问题,如果您只是在寻找与购买相关的工作人员,则可以简单地执行以下查询:

SELECT s.staff_id AS [Staff Id], COALESCE(ssm.NoOfRentals,0) AS [Number of Rentals]
FROM [staff table] AS s 
LEFT JOIN (SELECT staff_id, COUNT(staff_id) as NoOfRentals 
FROM [sale staff member table] 
WHERE SaleStaffMember_AssociatedWithPurchase = 1
GROUP BY staff_id) AS ssm
ON s.staff_id = ssm.staff_id

如果我错了,请纠正我。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

即使其他列表不包括,MS Access SQL也会显示完整列表

来自分类Dev

MS Access SQL查询不包括指定的表达式作为聚合函数

来自分类Dev

MS Access SQL错误

来自分类Dev

MS ACCESS SQL查询计数不同

来自分类Dev

MS Access中的格式

来自分类Dev

MS Access中的格式

来自分类Dev

MS Access SQL顺序更新

来自分类Dev

MS Access SQL插入查询

来自分类Dev

MS ACCESS SQL连接语法

来自分类Dev

MS Access SQL计算从多行

来自分类Dev

导出MS Access 2010 SQL

来自分类Dev

SQL MS Access 2013年

来自分类Dev

MS Access中的临时表

来自分类Dev

在查询中查询?(MS Access)

来自分类Dev

MS Access查询中的性能

来自分类Dev

在MS Access中打印报告

来自分类Dev

MS Access中的IIf错误

来自分类Dev

MS Access查询中的性能

来自分类Dev

MS Access 中的总计记录

来自分类Dev

MS-Access - 不包括 * 作为聚合函数的一部分......但它是

来自分类Dev

在MS Access SQL查询中合并行

来自分类Dev

MS Access SQL查询中的奇怪IIF

来自分类Dev

修剪MS Access SQL中的前导零

来自分类Dev

SQL语法错误-多个计数多个条件-MS ACCESS

来自分类Dev

MS Access - 与记录计数相关的查询数据

来自分类Dev

首先访问 Ms Access 查询计数

来自分类Dev

在MS Access中自定义使用计数功能

来自分类Dev

使用查询在MS Access中使用SQL返回最频繁的值和组中的计数

来自分类Dev

将SQl查询转换为MS Access