2015-09-14 54 views
0

我需要根據'ItemNo'列從下表中獲取最早日期。如何獲得每組最早日期的記錄

 
     ItemNo PO_number Date 
     110913 PO-8048 9/15/2015 
     110913 PO-8036 9/30/2015 
     110652 PO-1011 10/19/2015 
     110652 PO-1011 10/10/2015 
     110009 PO-1016 7/1/2015 
     110009 PO-1087 6/20/2015 
     110888 PO-7171 4/1/2015 

您的查詢結果應該看起來像這樣。

 
     ItemNo PO_number Date 
     110913 PO-8048 9/15/2015 
     110652 PO-1011 10/10/2015 
     110009 PO-1087 6/20/2015 
     110888 PO-7171 4/1/2015 

任何幫助將不勝感激。

+0

你能告訴我們你正在使用什麼查詢嗎? – logixologist

+0

如果日期列的數據類型爲Date,則可以選擇.... ORDER BY dateColumnName – NoChance

回答

0

幾個不同的方式,你可以處理這個,一個合理的辦法是這樣的:

with min_rec as 
(
    select t.ItemNo, t.PO_number, t.Date, row_number() over(partition by t.ItemNo order by t.Date asc) as rn 
    from your_table t 
) 
select m.ItemNo, m.PO_number, m.Date 
from  min_rec m 
where m.rn = 1; 

利用一個CROSS APPLY將是另一種方法,將工作爲好,但在這個特殊的情況下,它有可能止跌「T是一個更好的表演方法(雖然一如既往,這取決於):

select distinct c.ItemNo, c.PO_number, c.Date 
from your_table t 
cross apply (
    select top 1 i.ItemNo, i.PO_number, i.Date 
    from your_table i 
    where i.ItemNo = t.ItemNo 
    order by i.Date asc) c; 

自然,你可以簡單地使用一個自連接子查詢(我將跳過對一個例子)。

+0

chadhoc:感謝您付出額外的努力。 –

+0

@Allen_Delon,很樂意提供幫助。如果這有助於解決您的問題,請將其標記爲問題的答案。謝謝。 – chadhoc

+0

如何將其標記爲問題的答案? –

相關問題