计数内部表中的记录而无循环。

2020-09-05 05:02发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


如何在不使用循环语句的情况下计算内部表中的记录数。

Describe语句给出总数。 内部表中的记录数量。但是我想要内部表中关键字段的数量

例如

行字段

1 A

2 A

3 A

4 B

5 B

6 C

A的数量= 3

B的数量= 2

C的数量= 1

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


如何在不使用循环语句的情况下计算内部表中的记录数。

Describe语句给出总数。 内部表中的记录数量。但是我想要内部表中关键字段的数量

例如

行字段

1 A

2 A

3 A

4 B

5 B

6 C

A的数量= 3

B的数量= 2

C的数量= 1

付费偷看设置
发送
12条回答
四川大学会员
1楼-- · 2020-09-05 05:21

内部表的关键字段是非数字字段。

它不是关键字段计数。

必须根据内部表中的唯一数据进行计数。

没有循环是不可能的,因为它需要对记录数进行操作。


 类型:ty开始,
 field1类型c,
 行类型i。
 ty结束。

 数据:它的类型表,
 wa type ty。

 在itab循环进入wa1。  " itab保存您的数据
 wa-field1 = wa1-field1"此处为'A'。
 波浪= 1。
 收集洼。
 清除洼。
 结束循环。
 
Nir深蓝
2楼-- · 2020-09-05 05:40

感谢kesavdas。

它完美地工作。

SC_Yao
3楼-- · 2020-09-05 05:41

如果您想从内部表定义中获得内部表中的关键字段数

我想如果玛拉

it_mara类型的mara标准表。

因此,如果您可以检查mara表,您将获得关键字段的数量

致谢

Satish Boguda

半个程序猿
4楼-- · 2020-09-05 05:22

奥利维拉古堡谢谢。 现在我意识到了问题所在(计算内部表中一列的不同值的数量),我只是在没有上下文的情况下查看了答案的代码,并认为所提议的代码是无意义的(现在我看到了 如果确实要回答问题,请使用SUM而不是COUNT GROUP BY。 但是要提防与传统ABAP相比的性能下降:对于简单聚合" sum(labst)",我对SELECT FROM @itab与REDUCE进行了测试,得出REDUCE:2566.29

Violet凡
5楼-- · 2020-09-05 05:21

/p>

我认为这是不可能的。 只有3个主意:

1ª,将其他表设为" table2",类似于您的实际表。

table2 [] = yourtable []。

删除table2,其中键<>'A'。

描述表table2行contA。

但是根据数据量,您可能会在性能或内存消耗方面遇到问题...

2ª,仅使用键字段和计数字段制作另一个表,

数据开始于table2

key_field1,

...

继续输入类型i。

结束数据。

在将行添加到数据时,请对该表进行收集:

table2-keys = yourtable-keys。

table2-cont = 1。

收集table2。

但是只有在您可以修改附加数据的程序的情况下才有效,并且删除数据时您可能会小心:-(...

3ª如果您的数据填写了一个选择,则可以填充第2点的table2,进行类似的选择,但是:

在表table2中选择关键字段count(*)

来自...

哪里(必须填写原始表...)

按键分组。

但是您有一个同样的问题,就是稍后会删除数据...

我希望这三个对您有用...

编辑:迭戈·阿尔瓦雷斯(Diego Alvarez)在2010年1月5日下午5:09

灬番茄
6楼-- · 2020-09-05 05:31

您可以改用READ或DO语句,但是对您完全没有帮助。

Rob

一周热门 更多>