【发布时间】:2021-07-20 05:22:00
【问题描述】:
下午好, 我正在创建一个用于处理工作场所安全问题的数据库。 我想创建一个系统,用户可以在其中提出工具箱谈话,并通过过滤器生成需要参与的员工列表,因为他们要么属于某个部门、某种能力或两者兼而有之。 为了设置场景,可以为员工分配多个部门和多种能力,在这种情况下,我的选择查询:Query:ToolboxTalk 工作正常。 但是,有时员工会被分配到一个部门,但可能没有能力。发生这种情况时,由于 null 值,我的查询不会返回该员工。
我的问题是: 如何让我的查询包含空值,或者我应该以不同的方式处理这个问题?
请在下面的设计视图和 SQL 中查看我的查询截图:
SELECT tblEmployees.EmployeeID, IIf(IsNull([LastName]),IIf(IsNull([FirstName]),[FirstName]),IIf(IsNull([FirstName]),[LastName],[FirstName] & " " & [LastName])) AS [Employee Name], tblEmployees.Gender, tblDepartments.DepartmentID, tblDepartments.Department, tblCompetencies.CompetencyID, tblCompetencies.CompetencyDescription, tblEmployeesDepartments.EmployeesDepartmentID, tblEmployeesCompetencies.EmployeeCompetencyID
FROM (tblEmployees INNER JOIN (tblCompetencies INNER JOIN tblEmployeesCompetencies ON tblCompetencies.CompetencyID = tblEmployeesCompetencies.CompetencyID) ON tblEmployees.EmployeeID = tblEmployeesCompetencies.EmployeeID) INNER JOIN (tblDepartments INNER JOIN tblEmployeesDepartments ON tblDepartments.DepartmentID = tblEmployeesDepartments.DepartmentID) ON tblEmployees.EmployeeID = tblEmployeesDepartments.EmployeeID
WHERE (((tblEmployees.EmploymentStatus)="Active"));
如果有任何我忽略的信息,请告诉我,我会尽力添加。 提前谢谢!
【问题讨论】:
-
这就是
Left Join的用途。查找一些 SQL 教程以获取示例。 -
谢谢古斯塔夫。您对左加入的建议使我走上了成功之路。
标签: ms-access