我有一张表(tblMembers),其中包含计划成员的个人人口统计信息。我需要查看表中是否有分配给多个人的员工ID。我觉得有一种简单的方法可以做到这一点,但我正在努力。我尝试创建一个自联接查询,该查询在Employee_ID字段上连接tblMembers。在该查询中,我有一个计算字段,用于连接成员的名字和姓氏。以下是我所尝试的,没有当前字段可以区分每个成员(如SSN),因此我需要创建一个计算字段。这个SQL不起作用,因为它要求我提供AFirst和BFirst的值。另外作为注释我在MS Access中编写此代码。
Private Sub Workbook_Open()
If "C:\Excel\" <> ThisWorkbook.Path Then ThisWorkbook.Close
End Sub
答案 0 :(得分:1)
在带有连接的WHERE
子句中,您应该重复计算:
WHERE (A.FIRST_NAME & A.LAST_NAME) <> (B.FIRST_NAME & B.LAST_NAME)
此外,您还有多个印刷错误:
A,EMPLOYEE_ID
有一个逗号,应该是一个点,并且最后缺少一个逗号(应该是A.EMPLOYEE_ID,
)
答案 1 :(得分:0)
您无法在WHERE
子句中使用别名。事实上,我认为没有必要使用WHERE
条款。你可以用这个:
SELECT A.BENEFIT_PERIOD,
A.BENEFIT_TYPE,
A.PLAN_NAME,
A.PERSON_TYPE,
A.LAST_NAME,
A.FIRST_NAME,
A.MIDDLE_NAME,
A.SUFFIX,
A.MARITAL_STATUS,
A.RETIRED,
A.HOURS_WORKED,
A.GENDER,
A.COVERAGE,
A.EMPLOYEE_ID
A.TOTAL_MONTHLY_COST,
A.PENDING_STATUS,
A.FIRST_NAME & A.LAST_NAME AS AFirstLast,
B.FIRST_NAME & B.LAST_NAME AS BFirstLast
FROM [Benefit Detail Report] AS A INNER JOIN [Benefit Detail Report] AS B ON A.[EMPLOYEE_ID] = B.[EMPLOYEE_ID]
and (A.FIRST_NAME <> B.FIRST_NAME or A.LAST_NAME <> B.LAST_NAME);