ABAP:如何组合选择最大值和计数?

时间:2010-06-27 01:31:50

标签: sql sap abap

我有这个:

select ordernr 
from users 
having count(ordernr) = 
( select max(count(ordernr)) 
    from users where ordernr = ordernr 
    group by ordernr ) 
group by ordernr

从所有用户那里获得最常用的订单号(ordernr)。

如何将其纳入ABAP SAP系统?我试过这个:

select SINGLE ordernr 
from ZDEVXXX_PROJECT3 INTO ordernrU 
having count( * ) = 
( select max( count( * ) ) 
    from ZDEVXXX_PROJECT3 
    where ordernr = ordernr 
    group by ordernr )

但是我收到了这个错误:

"Unknown columnname COUNT("

如何在ABAP中组合max和count?上面的SQL查询适用于我。 谢谢!

3 个答案:

答案 0 :(得分:1)

如果要在HAVING子句中使用它,则需要在结果集中使用COUNT(*)。有关示例,请参阅http://help.sap.com/abapdocu_751/en/ABENWHERE_LOGEXP_ALL_ANY_SOME.htm

答案 1 :(得分:0)

从6.1版开始,您可以在HAVING子句中使用聚合。 但你的回答是“没办法”。聚合必须仅为aggr( {[distinct] column | *} )格式 所以你必须

select count( * )
    into table itab
    from ZDEVXXX_PROJECT3 
    where ordernr = ordernr 
    group by ordernr

然后以programmaticaly查找最大计数。然后才在HAVING条件下使用它。

答案 2 :(得分:-1)

或者您可以使用ABAP Open SQL。它使您可以访问特定数据库的SQL,并且可以执行上面提到的查询。