ORA-00936:表达absente

时间:2015-10-09 00:40:58

标签: sql database oracle oracle10g top-n

你能帮我知道我的sql中可能出现的错误吗?ORA-00936:我错过了表达错误,但我找不到错误。

   select p.nompr
from produit p
where p.idpr=(select o.idpr 
           from objet o,enchere e
           where o.idobj=e.idobj
           group by o.idpr
           having(count(*)=select Max(count (o1.idpr)) 
                          from objet o1,enchere e1 
                          where o1.idobj=e1.idobj
                          group by o1.idpr) );

2 个答案:

答案 0 :(得分:2)

我重建了你的查询。我相信你在这里想要达到的目标是获得最多出现次数/数量的p.nompr:

select p.nompr
from produit p
where p.idpr in(
   select idpr_alias from (SELECT count (o1.idpr) CNT, o1.idpr idpr_alias 
                                from objet o1,enchere e1 
                                 where o1.idobj=e1.idobj
                           group by o1.idpr)
    where CNT=(select max(count(o1.idpr)) from objet o1,enchere e1 
                      where o1.idobj=e1.idobj
                      group by o1.idpr))

答案 1 :(得分:-1)

这是片段吗?

select Max(count (o1.idpr)) 
                          from objet o1,enchere e1 
                          where o1.idobj=e1.idobj
                          group by o1.idpr

独自运行?我怀疑你不能像这样一起使用max()count()