MAX函数在Oracle语句中不起作用



我使用MAX(woq.wq_version(有以下语句,它不断返回两个结果。

SELECT woq.wo_number, woq.quote_amount, MAX(woq.wq_version) version
FROM ba_view_wo_quote woq
LEFT JOIN sm_header smh
ON woq.woo_auto_key = smh.woo_auto_key
WHERE woq.woo_auto_key = smh.woo_auto_key
AND woq.wo_number = 'WO1110885'
AND woq.quote_amount <> '0' 
HAVING woq.wq_version = MAX(woq.wq_version)
GROUP BY woq.wq_version, woq.quote_amount, woq.wo_number

我不断收到这些结果:

<1>
wo_numberquote_amount版本
WO11108852803.15
WO111088512002

听起来你只是想要

select woq.wo_number,
woq.quote_amount,
woq.wq_version version 
from ba_view_wo_quote woq 
left join sm_header smh on woq.woo_auto_key=smh.woo_auto_key 
where woq.wo_number = 'WO1110885' 
and woq.quote_amount<>'0' 
order by woq.quote_amount desc
fetch first 1 row only

如果这不是你想要的,那么用一个可复制的测试用例来更新你的问题会很有帮助,它会向我们展示你的表是什么样子的,你的数据是什么样子,以及你想要的数据结果是什么。

请注意,在联接的on子句和where子句中重复相同的条件是没有意义的,所以我去掉了where子句条件。

最新更新