私は2つのテーブルを持っています。STOCK_HIST には、値 (PRHIGH) の時系列 (DSEQKEY) が含まれています。もう 1 つのテーブル (PHASE_KEYS_D) には、PHASE_KEYS_D.BEGKEY から PHASE_KEYS_D.ENDKEY によってマークされた STOCK_HIST のさまざまな期間を表す STOCK_HIST の開始キーと終了キーが含まれています。PHASE_KEYS_D の各行の BEGKEY と ENDKEY の間の STOCK_HIST で最高の PRHIGH を返すクエリを機能させようとしています。私は次のことを試しましたが、常に本来あるべきものが返されるとは限りません。
select dseqkey,prhigh
from STOCK_HIST
where prhigh in
(
select max(prhigh)
from STOCK_HIST A, PHASE_KEYS_D B
where a.dseqkey between b.begkey and b.endkey
group by b.begkey
)
order by dseqkey desc
CREATE TABLE STOCK_HIST (DSEQKEY INT, PRHIGH MONEY)
DSEQKEY PRHIGH
1 1432.22
2 1433.10
3 1435.55
4 1440.21
5 1422.20
6 1415.10
7 1401.99
8 1433.10
CREATE TABLE PHASE_KEYS_D (BEGKEY INT, ENDKEY INT)
BEGKEY ENDKEY
1 3
4 5
6 8
助けてくれてありがとう!