在 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 只允许关联子查询更深一层,并建议重写以避免子查询——选择最大值的讨论表明无法做到这一点。任何帮助执行此语句将不胜感激。