Oracle 9.2.0.8 では、別のフィールド (WO_NUM) ごとに、特定のフィールド (LAB_SEQ) が最大 (順次 VARCHAR 配列 '0001'、'0002' など) であるレコード セットを返す必要があります。 . 最大を選択するために、降順で並べ替えて最初の行を選択しようとしています。私が StackOverflow で見つけることができるものはすべて、これを行う唯一の方法は相関サブクエリを使用することであることを示唆しています。次に、外側のクエリの WHERE 句でこの最大値を使用して、各 WO_NUM に必要な行を取得します。
SELECT lt.WO_NUM, lt.EMP_NUM, lt.LAB_END_DATE, lt.LAB_END_TIME
FROM LAB_TIM lt WHERE lt.LAB_SEQ = (
SELECT LAB_SEQ FROM (
SELECT lab.LAB_SEQ FROM LAB_TIM lab WHERE lab.CCN='1' AND MAS_LOC='1'
AND lt.WO_NUM = lab.WO_NUM ORDER BY ROWNUM DESC
) WHERE ROWNUM=1
)
ただし、これは lt.WO_NUM エラーに対して無効な識別子を返します。調査によると、ORAcle 8 では 1 レベルの深さの相関サブクエリのみが許可され、サブクエリを回避するために書き直すことが提案されています。このステートメントを実行するための助けをいただければ幸いです。