這是一個SQL Server問題。左連接複製
我連接來自同一個數據庫的三個表,並不斷獲取重複值。表REF_Plan_Dictionary和REF_Plan_Assign_Default將自行生成重複項,因爲某些列將引用其他列中的多個子選項。表dev_OUT_MasterEmp只會爲每個EmpID生成一條記錄。
該查詢的目的是使用M.EmpID並將來自其他兩個表的信息與這條信息相匹配。重複項是EmpID重複多次的位置,但所有信息只匹配一次。這意味着我提到的子選項沒有顯示出來,因爲其他兩個表匹配正確。所以這不是匹配,這是相同的信息重複的事實。
我該如何擺脫重複?
SELECT M.EmpId
,EmpName
,[UserId]
,PA.Plan_Dict_Id
,m.Job_Code
,Dept_Num
,PayGroup
,D.Plan_Name
,Plan_Desc
,M.[File_Nbr]
,[Mgr_EmpId]
,[Work_Location]
,[Emp_Tenure]
,[Emp_Status]
,[Plan_Eligibility]
,M.[Function_Role_Code]
,[Hire_Date]
,[Job_Entry_Date]
,[Term_Date]
,[Dept_Num]
,[TeamID]
,[CCGroup]
,[Channel]
,[Organization]
,[Hourly_Rate]
,[HC]
FROM [Compensation].[dbo].[dev_OUT_MasterEmp] M
left join Compensation..REF_Plan_Dictionary D on M.Plan_Id = D.Plan_Dict_Id
left join Compensation..REF_Plan_Assign_Default PA on M.Plan_Id = PA.Plan_Dict_Id
這是我的結果的一個例子:
這是表REF_Plan詞典:
這是表REF_Plan_Assign_Default:
樣本數據/輸出將有所幫助。 – canon
如果您的映射表中有多個條目,則結果中將有重複的EmpId。要刪除重複的結果,您需要先在EmpId上創建結果,然後再次將結果與Employee表結合以添加其他信息。 – Tim3880
@ Tim3880我曾想過這件事。問題是沒有其他表有員工ID,所以我不得不引用其他列加入他們。 – MHeath