2016-11-11 43 views
0

我有两个表,我想加入。表1有销售订单,但没有销售人员的姓名。它只有员工ID。我有table2,它有雇员的名字,employeeID在两个表之间是共同的。通常,我会使用内部联接从table2中获取销售人员的姓名。问题是,在table2上,每个员工有多个条目。如果他们改变了管理者,或者改变了公司内部的角色,或者也许继续使用FMLA,它会创建一个新的行。因此,当我加入表格时,由于表格2中存在多个条目,所以会创建重复项目。在我的结果中,销售会显示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

我认为第二个表有办法知道哪一行是最近的为每一位员工。使用该条件 – Lamak

+0

如果您所追求的是他们的名字......您可以将table2更改为....'(从table2中选择不同的employeeID,sales_rep_name)作为B',但是这假定名称是常量。问题在于你想要显示出售时的名称吗? :P如果是这样,你需要在order_date之后来自table2的最短日期;使这个更有趣:P我们需要两个表的表结构来从中找出它...... – xQbert

+0

这是一个好点的xQbert。我正在追踪销售人员的姓名和他的经理。我想在出售时包括经理,所以我需要添加table2的最大日期。我应该把它包含在子查询中吗? – user7146708

回答

0

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

+0

你可以在此扩展吗? – pancho018