表中的重复字段,distinct不起作用

时间:2017-02-17 19:51:38

标签: sql-server duplicates distinct-values

我有以下查询:

select distinct 
  ROW_ID = row_number() over (
    order by wms_us.wms_us.rrno.rrdate
     , wms_us.wms_us.rrno.pono
     , wms_us.wms_us.transferboxdet.meidhex
     , att.Date_cleared
    )
 , ATT_PO = wms_us.wms_us.rrno.pono
 , Received_Date = wms_us.wms_us.rrno.rrdate
 , IMEI = case
        when len(wms_us.wms_us.transferboxdet.meidhex) >= 15
        then left(wms_us.wms_us.transferboxdet.meidhex, 14)
        else wms_us.wms_us.transferboxdet.meidhex
        end
 , Model = case
        when (wms_us.wms_us.model.modeldesc = 'MIXED')
        then wms_us.wms_us.transferboxdet.basemodel
        else wms_us.wms_us.model.modelbase
        end
 , Date_cleared = case
        when (Future.[Error Code] = '1')
        then Future.LocalTime
        else att.Date_cleared
        end
 , Result = case
        when (Future.[Error Code] = '1')
        then 'PASS'
        else att.Result
        end
from wms_us.wms_us.transferboxdoc
  inner join wms_us.wms_us.transferboxdet
    on wms_us.wms_us.transferboxdoc.transferboxdocid 
      = wms_us.wms_us.transferboxdet.transferboxdocid
  inner join wms_us.wms_us.rrno
    on wms_us.wms_us.transferboxdet.rrnoid = wms_us.wms_us.rrno.rrnoid
  inner join wms_us.wms_us.model
    on wms_us.wms_us.transferboxdoc.modelid = wms_us.wms_us.model.modelid
  left join DRSCSQLQADB01.att_view2.dbo.attview2 as att
    on att.IMEI = LEFT(wms_us.wms_us.transferboxdet.meidhex, 14)
  inner join Futerdial.dbo.Futuredial_Validation as Future
      on Future.IMEI = wms_us.wms_us.transferboxdet.meidhex
where (wms_us.wms_us.rrno.rrdate > '2016-12-01') 
  and Future.IMEI = '352130070643357'

我在Futuredial_Validation表中有IMEI重复,我一直试图使用Distinct只是为了向我展示一个IMEI但是它不起作用,有什么替代方法我可以使用?或者我使用它错了? 附上一张显示我的图片,我只能看到第一张图片。

Screenshot

谢谢

1 个答案:

答案 0 :(得分:0)

对于要通过distinct过滤掉的行,所有值必须相同。在此查询中,您可以将查询包装在CTE中,并在ROW_ID = 1上进行过滤。