我有这个:
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查询适用于我。 谢谢!
答案 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,并且可以执行上面提到的查询。