如何将 select max 和 count 结合起来?

发布于 2024-09-07 21:36:27 字数 633 浏览 3 评论 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("

How to join max and count in ABAP?上面的 SQL 查询对我来说在 Oracle 中运行。 谢谢!

I've got this:

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

to get the most used order-number (ordernr) from all users.

How to get it into ABAP SAP System? I've tried this:

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

But I get this error:

"Unknown columnname COUNT("

How to combine max and count in ABAP? The SQL Query above is working in Oracle for me.
Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

半枫 2024-09-14 21:36:27

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

You need to have COUNT(*) in the result set if you want to use it in the HAVING clause. See http://help.sap.com/abapdocu_751/en/ABENWHERE_LOGEXP_ALL_ANY_SOME.htm for an example.

凑诗 2024-09-14 21:36:27

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

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

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

Since release 6.1 you can use aggregates in HAVING clause.
But your answer is "No way". Aggregates must be only in form aggr( {[distinct] column | *} )
So you must to

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

Then to find maximum of counts programmaticaly. And only then to use it in HAVING condition.

如歌彻婉言 2024-09-14 21:36:27

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

Or you can use ABAP Open SQL. It gives you the access to SQL of your particular DB and you can execute your mentioned above query.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文