[英]Self Joining SQL Query with a Calculated Field (Using MS Access)
我有一個表(tblMembers),其中包含計划成員的個人人口統計信息。 我需要找出表中是否有分配給多個人員的員工ID。 我覺得有一個簡單的方法可以做到這一點,但我正在努力。 我試圖創建一個自我聯接查詢,將Employee_ID字段上的tblMembers聯接起來。 在該查詢中,我有一個計算所得的字段,該字段將成員的名字和姓氏連接在一起。 下面是我嘗試過的操作,沒有當前字段可以區分每個成員(例如SSN),因此我需要創建一個計算字段。 該SQL無法正常工作,因為它要求我提供AFirst和BFirst的值。 另外請注意,我正在MS Access中編寫此代碼。
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]
WHERE AFirstLast <> BFirstLast;
在帶有WHERE
子句中,您應該重復計算:
WHERE (A.FIRST_NAME & A.LAST_NAME) <> (B.FIRST_NAME & B.LAST_NAME)
此外,您還有多個印刷錯誤:
A,EMPLOYEE_ID
的逗號應為點號,並且末尾缺少逗號(應為A.EMPLOYEE_ID,
)
您不能在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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.