如何根据最新行提取信息

时间:2011-07-23 05:51:14

标签: sql

我有两张桌子: -

表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

我希望使用SQL根据最新的DEL(表A)提取信息。最终输出应如下所示: -

输出: -

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

感谢。

1 个答案:

答案 0 :(得分: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