2017-02-17 1 views
1

Ich habe die folgende Abfrage:doppelte Felder in einer Tabelle, deutlich nicht funktionieren

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' 

ich die IMEI in der Tabelle Futuredial_Validation Duplikat habe, ich habe die Distinct zu verwenden versucht, mir nur um zu zeigen, eine IMEI, aber es funktioniert nicht, gibt es eine Alternative, die ich verwenden kann ?? Oder ich benutze es falsch? Fügen Sie ein Bild von dem, was mich zeigt, ich nur eins in der Lage, eins zu sehen.

Screenshot

Dank

Antwort

0

Für Reihen durch unterschiedliche herausgefiltert werden, müssen alle Werte gleich sein. In dieser Abfrage sieht es so aus, als könnten Sie die Abfrage einfach in ein CTE umbrechen und nach ROW_ID = 1 filtern.

Verwandte Themen