私はselect文を持っています。ユニークキーの最大日付行を選択してください
SELECT x.ndc_id
,z.attr_val AS trade_name
,x.quote_price
,x.eff_dt FROM contract_ndc_brg x
LEFT JOIN ndc_attr AS z ON z.field_id = 150
where contract_num_val = (
SELECT item_name
FROM [contract]
WHERE item_id = 184
)
お知らせ同じndc_idを持つ2つの行があります。私はこれらの結果が欲しいですが、eff_dt
が最も高いndc_id
のそれぞれに対して1つの結果しかありません。
私はwhere句に追加してみました:
SELECT x.ndc_id
,z.attr_val AS trade_name
,x.quote_price
,x.eff_dt FROM contract_ndc_brg x
LEFT JOIN ndc_attr AS z ON z.field_id = 150
where contract_num_val = (
SELECT item_name
FROM [contract]
WHERE item_id = 184
) and x.eff_dt = (select max(eff_dt) from contract_ndc_brg where contract_num_val = (
SELECT item_name
FROM [contract]
WHERE item_id = 184
))
私はこれで問題は、それが任意の行の最大の日付を返しているということです考え出しました。
私は間違っていることをどのように修正できますか?
あなたは 'GROUP BY'にしようとしましたか? – Sami
@Samあなたは精巧にできますか? –