|
JRDBシステム班さんへ
>おそらく()の中で何走前を計算して、それが5以下の条件 ということと思います。
>で、「参照の問題」というのが、どういうことなのかわかりません。
>INNER JOIN を使わないで、元のような形で使うのはダメなのでしょうか?
ああ、参照の問題は解決しました。どのテーブルがどのテーブルを指すべきなのか、ちょっと分からなかったもので・・・。
ただ、TABLE1のRACE_CODEの最大値「よりも」TABLE2のRACE_CODE内の小さい値を5つ抜き出す、と言うのがなかなか難しく、
一つ解を見つけたんですが、検索/演算がかなり重くなって大変な事になっております。
SELECT
*
FROM
(SELECT
KETTO_TOROKU_BANGO
, RACE_CODE
, (SELECT
COUNT (*) + 1
FROM
JVD_UMAGOTO_RACE_JOHO T2
WHERE T2.KETTO_TOROKU_BANGO = T1.KETTO_TOROKU_BANGO
AND T2.RACE_CODE < T1.RACE_CODE) AS ROW
FROM
JVD_UMAGOTO_RACE_CODE T1) T
WHERE T.ROW <= 5
ORDER BY
T.KETTO_TOROKU_BANGO, T.RACE_CODE;
もしこれより効率的な解をご存知でしたら、お教え頂けたら、と思います。
|
|