0

item_prices価格の表があります。これらの価格は随時変動します。

日付が最も新しいものをすべて表示したい

ITEM_価格

id | Items_name | item_price | item_date
------------------------------------------
1        A          10         2012-01-01
2        B          15         2012-01-01
3        B          16         2013-01-01
4        C          50         2013-01-01
5        A          20         2013-01-01

以下のように、ABCアイテムをそれぞれ最高の日付で1回表示したい

id | Items_name | item_price | item_date
-------------------------------------------
3        B          16         2013-01-01
4        C          50         2013-01-01
5        A          20         2013-01-01
4

4 に答える 4

1

ネイティブ関数を使用できる場合、ウィンドウ関数または CTE を使用する理由。

    SELECT t1.*
    FROM ITEM_prices t1
    JOIN
    (
        SELECT Items_name,MAX(item_date) AS MaxItemDate
        FROM ITEM_prices
        GROUP BY Items_name
    )t2
        ON t1.Items_name=t2.Items_name AND t1.item_date=t2.MaxItemDate
于 2013-10-29T16:35:19.673 に答える
0

1 つの方法は、ウィンドウ関数を使用して各アイテムの最大日付を見つけることです。

select id, Items_name, item_price, item_date
from (select ip.*,
             max(item_date) over (partition by items_name) as max_item_date
      from item_prices
     ) ip
where item_date = max_item_date;
于 2013-10-29T15:36:50.870 に答える