在我加入两个表后,如何将条件放在特定列上

时间:2015-04-15 19:04:07

标签: sql sql-server

我使用代码加入了两个表来获取两列:

SELECT rpt_Line_Shift_AvailableHrs.LineNumber
      ,rpt_Line_Shift_Prod.ShiftNumber
FROM rpt_Line_Shift_AvailableHrs
LEFT OUTER JOIN rpt_Line_Shift_Prod 
ON rpt_Line_Shift_AvailableHrs.LineNumber=rpt_Line_Shift_Prod.LineNumber 

我得到的结果是:

Line#    , ShiftNumber
1            A
1            A
1            B
1            C
1            C
1            C
1            D

但我正在寻找像这样的结果

Line# ,    ShiftNumber
1            A
1            B
1            C
1            D

3 个答案:

答案 0 :(得分:1)

您可以使用distinct

select distinct rpt_Line_Shift_AvailableHrs.LineNumber
     , rpt_Line_Shift_Prod.ShiftNumber
from rpt_Line_Shift_AvailableHrs
left join rpt_Line_Shift_Prod on rpt_Line_Shift_AvailableHrs.LineNumber=rpt_Line_Shift_Prod.LineNumber 

group by条款:

select rpt_Line_Shift_AvailableHrs.LineNumber
     , rpt_Line_Shift_Prod.ShiftNumber
from rpt_Line_Shift_AvailableHrs
left join rpt_Line_Shift_Prod on rpt_Line_Shift_AvailableHrs.LineNumber=rpt_Line_Shift_Prod.LineNumber 
group by rpt_Line_Shift_AvailableHrs.LineNumber
       , rpt_Line_Shift_Prod.ShiftNumber

答案 1 :(得分:1)

尝试使用DISTINCT删除重复项。

Select DISTINCT
  rpt_Line_Shift_AvailableHrs.LineNumber,
  rpt_Line_Shift_Prod.ShiftNumber
From
  rpt_Line_Shift_AvailableHrs
  left outer join rpt_Line_Shift_Prod 
    on rpt_Line_Shift_AvailableHrs.LineNumber=rpt_Line_Shift_Prod.LineNumber 

答案 2 :(得分:1)

如果您想让每一行只显示一次,则需要使用SELECT DISTINCT以及其他未更改的查询