在加入表

时间:2016-11-11 15:57:20

标签: sql sql-server join

我想要加入两个表。表1具有销售订单,但它没有销售人员的名称。它只有员工ID。我有table2,它有员工的名字,employeeID在两个表之间是通用的。通常我会使用内部联接从table2获取销售人员的名称。问题是在table2上,每个员工都有多个条目。如果他们改变了经理,或者改变了公司内部的角色,或者可能继续使用FMLA,那么它会创建一个新行。因此,当我加入表时,由于table2中的多个条目,它会创建重复项。销售在我的结果中显示3或4次。

Select
    a.state_name
    ,order_number
   ,a.employeeID
   ,b.Sales_Rep_Name
   ,a.order_date
from
    table1 as A

 Inner join table2 as B
On a.employeeid = b.employeeID

where
   b.monthperiod = 'November'  <-- If I remove this one it adds duplicates

有没有办法不让这些重复?我尝试了不同但没有奏效。可能是因为行中至少有一列不同。当我在表2中添加了一个上个月要求的where子句时,我能够消除重复项,但我处于需要所有月份的情况,而不仅仅是一个月。我必须手动更改月份才能获得全年。

任何帮助将不胜感激。感谢

1 个答案:

答案 0 :(得分:0)

使用子查询获取不同员工记录的列表,然后查询销售表