row_number()
のようなウィンドウ機能を使用することで、一方向にする方法はさまざまです。 row_number関数を使用すると、パーティションを持つ各行に一意の番号を作成できます。その場合、パーティションはdh_type
であり、次にdh_createDT
で番号の作成を指示します。最終結果は、結果はあなたにそれをバックに参加、その後、各dh_type
とdh_product
ためmax(dh_createDT)
を取得するサブクエリを使用することです取得するための別の方法= 1:
select dh_type,
dh_product
from
(
SELECT
dh_type,
dh_product,
rn = row_number() over(partition by dh_type order by dh_createDT desc)
FROM myProducts
WHERE dh_productid = '08-BLD4011603S0'
AND dh_type IN ('New','Old','Ref')
) d
where rn = 1;
ROW_NUMBERを持つ行になりますテーブル:
select
dh_type,
dh_product
from myProducts p
inner join
(
select
dh_type,
dh_product,
MaxDate = max(dh_createDT)
from myProducts
where h_productid = '08-BLD4011603S0'
and dh_type IN ('New','Old','Ref')
group by dh_type, dh_product
) p1
on p.dh_type = p1.dh_type
and p.dh_product = p1.dh_product
and p.dh_createDT = p1.MaxDate
where p.h_productid = '08-BLD4011603S0'
and p.dh_type IN ('New','Old','Ref')
いくつかのサンプルテーブルデータと期待される結果、および書式付きテキストを追加します。 – jarlh