0

我有这个:

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 中为我工作。谢谢!

4

3 回答 3

1

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

于 2010-06-27T14:31:11.280 回答
-1

从 6.1 版开始,您可以在 HAVING 子句中使用聚合。但你的答案是“不可能”。聚合必须只是形式aggr( {[distinct] column | *} ) 所以你必须

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

然后以编程方式找到最大计数。只有这样才能在 HAVING 条件下使用它。

于 2010-08-11T02:37:29.567 回答
-1

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

于 2010-08-22T11:33:32.890 回答