Oracle SQL:仅返回最大值

Oracle SQL:仅返回最大值,sql,oracle,Sql,Oracle,下面的查询结果分为两行。我添加了最后一个'and'语句,以便只显示高度为最大高度的结果,但是报告仍然返回2行 select ds.catnr, pd.part_no, pd.description, ds.packtyp, pd.qty_box, ds.planqty, ds.weight_g, round((ds.planqty/pd.qty_box),'1') X, bom.av_part_no, lg.height, lg.length, lg.spine width, lg.part_

下面的查询结果分为两行。我添加了最后一个'and'语句,以便只显示高度为最大高度的结果,但是报告仍然返回2行

select ds.catnr, pd.part_no, pd.description, ds.packtyp, pd.qty_box, ds.planqty, ds.weight_g, 
round((ds.planqty/pd.qty_box),'1') X, bom.av_part_no, lg.height, lg.length, lg.spine width, lg.part_no, lg.description
from oes_delsegview ds, part_description pd, 
TABLE(leos_flatbom_pkg.GetFlatBOM(pd.part_no)) bom, 
leos_gen_part_picture lg
where ds.ordnr = '0021565475'
and ds.posnr = '00002'
and ds.segnr = '001'
and ds.catnr = pd.catnr
and ds.prodtyp = pd.prodtyp
and ds.packtyp = pd.packtyp
and bom.prodtyp = 'KT'
and bom.av_part_no = lg.part_no
and lg.height = (select max(lg1.height) from leos_gen_part_picture lg1 where lg.part_no = lg1.part_no)
为什么“height=maxheight”不限制我的结果,如何更改脚本以仅显示“height=maxheight”所在的行

当前结果

要求的结果


谢谢

如果没有数据就无法确定,但我建议

1您在max上没有得到与查询其余部分相同的条件


2有两行具有相同的高度

在没有最后一个条件的情况下返回多少行?还有2个?如果是,那么原因是您正在比较特定行的高度和它的最大高度,因为您正在为内部select语句中的每个part\u no where子句检索它。我看不到任何输出,那么您在谈论哪两行?而且,它们是行而不是行。另外,您可能有多行具有相同的最大高度。在不使用上一个条件时,我得到了两行,每行的高度不同,结果添加到问题高度每行不同,结果添加到问题获得它。。。你是对的,我遗漏了max上的一个条件作为查询的其余部分。最大条件修改为。。。lg.height=从tableos\u flatbom\u pkg.GetFlatBOMpd.part\u no bom1、leos\u gen\u part\u picture lg1中选择maxlg1.height,其中bom1.prodtyp='KT'和bom1.av\u part\u no=lg1.part\n你把它整理好了,很高兴我能帮你