首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从CDS中获取不同键字段值的计数

从CDS中获取不同键字段值的计数
EN

Stack Overflow用户
提问于 2020-12-16 10:03:44
回答 1查看 1.5K关注 0票数 1

我想问一下,是否可以使用ABAP动态地计数不同的字段。

在我国CDS中有9个字段,这是相当多的,但由于历史的决定,不可能分割。我需要的是如下代码:

代码语言:javascript
复制
select count(distinct (lv_requested_elements)) from CDS_VIEW; 

代码语言:javascript
复制
select count(*) from (select distinct lv_requested_elements from CDS_VIEW);

我知道将select读入内存并获得sy-dbcnt是可能的,但我希望确保没有其他选项。

EN

回答 1

Stack Overflow用户

发布于 2020-12-17 16:01:57

我假设最简单、最直接的方法是将最小的字段读入内存,然后按分组(区分的)行进行计数:

代码语言:javascript
复制
DATA(fields) = ` BLART, BLDAT, BUDAT`.

DATA: lt_count TYPE TABLE OF string.
SELECT (fields(6))
  INTO TABLE @lt_count
  FROM ('BKPF')
 GROUP BY (fields).

DATA(count) = sy-dbcnt.

前面提到的CTE使用相同的内存读取,因此您将不会获得任何性能增益:

公共表表达式创建临时表格结果集,在执行WITH语句时可以访问该结果集。

如果您要经常计算这个键组合,我建议创建消费或嵌套的CDS视图,这将在运行中完成。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65321061

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档