2013-06-05 25 views
2

我是SQL新手,嘗試將Excell報告放在一起,如果在其他字段中找到重複項,將只返回最年輕的項。SQL刪除最舊日期的重複項

SELECT distinct [Barcode] 
     ,[Code] 
     ,[Description] 
     ,[TransactionType] 
     ,[Date] 
     ,[From Qty] 
     ,[DocumentReference] 
     ,[DocumentNumber] 
     ,[Site] 
    FROM [GRANITE].[dbo].[Report_App_Transactions]where TransactionType='pick' 

我的目標是找到重複的「條形碼」,只有返回最小的值按「日期」

回答

1
select * 
from [GRANITE].[dbo].[Report_App_Transactions] r1 
inner join 
(
    select barcode, max(date) as mdate 
    from [GRANITE].[dbo].[Report_App_Transactions] 
    group by barcode 
) r2 on r1.barcode = r1.barcode and r2.mdate = r1.date 
where r1.TransactionType='pick' 
+0

+1,但「重複在另一個領域找到了」暗示OP希望檢查重複不只是'(條碼)' – Andomar

+0

謝謝!我坐了3天,利用GOOGLE,沒有運氣! –