我使用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
我不断收到这些结果:
wo_number | quote_amount | 版本 |
---|---|---|
WO1110885 | 2803.15 | <1>|
WO1110885 | 1200 | 2 |
听起来你只是想要
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
子句条件。