2011-07-23 32 views
2

我有兩個表中提取信息: -如何基於最新的排

表A: -

ORNO DEL PONO QTY 
801 123 1  80 
801 123 2  60 
801 123 3  70 
801 151 1  95 
801 151 3  75 
802 130 1  50 
802 130 2  40 
802 130 3  30 
802 181 2  55 

表B: -

ORNO PONO STATUS ITEM 
801  1  12  APPLE 
801  2  12  ORANGE 
801  3  12  MANGO 
802  1  22  PEAR 
802  2  22  KIWI 
802  3  22  MELON 

我想提取信息基於最新的DEL(在表A中)使用SQL。最終的輸出應該是這樣的: -

OUTPUT: -

ORNO PONO STATUS ITEM QTY 
801  1  12 APPLE 95 
801  2  12 ORANGE 60 
801  3  12 MANGO 75 
802  1  22 PEAR 50 
802  2  22 KIWI 55 
802  3  22 MELON 30 

感謝。

回答

2
select b.*, y.QTY 
from 
(
    select a.ORNO, a.PONO, MAX(a.DEL) [max] 
    from @tA a 
    group by a.ORNO, a.PONO 
)x 
join @tA y on y.ORNO = x.ORNO and y.PONO = x.PONO and y.DEL = x.max 
join @tB b on b.ORNO = y.ORNO and b.PONO = y.PONO 

輸出:

ORNO  PONO  STATUS  ITEM  QTY 
----------- ----------- ----------- ---------- ----------- 
801   1   12   APPLE  95 
801   2   12   ORANGE  60 
801   3   12   MANGO  75 
802   1   22   PEAR  50 
802   2   22   KIWI  55 
802   3   22   MELON  30 
+0

@Bob,歡迎你! –