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

Abap 如何组合选择最大值和计数?,abap,opensql,Abap,Opensql,我有这个: 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 ZDEV

我有这个:

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中组合最大值和计数?上面的SQL查询在Oracle中为我工作。
谢谢

如果要在HAVING子句中使用COUNT*,则需要在结果集中使用COUNT*。有关示例,请参见。

自6.1版以来,您可以在HAVING子句中使用聚合。 但你的答案是不行的。聚合只能采用aggr{[distinct]列|*}的形式 所以你必须

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

然后找到程序中的最大计数。只有在具备条件时才能使用它。

或者您可以使用ABAP Open SQL。它允许您访问特定数据库的SQL,您可以执行上述查询。

您可能指的是原生SQL,不,这不是应用程序开发中要采用的方法。如果您不关心那些必须维护您留下的经过审查的数据库的人,是的。我提出了一种有效的方法。原生SQL存在,它是特定于DB的,但有时它在ABAPSQL不存在的地方工作。我不会使用像XYZ不是应用程序开发中要采用的方法这样的短语,它不是由您来决定的。有些人可能会认为ABAP不是一种开发方法。您正在寻找的SQL聚合技术是SAP OpenSQL在R/3上调用的,不受其支持。您可能需要ABAP代码,并且不能单独使用SQL来解决它,至少不能以可读的方式解决。