2020-09-05 05:02发布
加入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
内部表的关键字段是非数字字段。
它不是关键字段计数。
必须根据内部表中的唯一数据进行计数。
没有循环是不可能的,因为它需要对记录数进行操作。
类型:ty开始, field1类型c, 行类型i。 ty结束。 数据:它的类型表, wa type ty。 在itab循环进入wa1。 " itab保存您的数据 wa-field1 = wa1-field1"此处为'A'。 波浪= 1。 收集洼。 清除洼。 结束循环。
感谢kesavdas。
它完美地工作。
如果您想从内部表定义中获得内部表中的关键字段数
我想如果玛拉
it_mara类型的mara标准表。
因此,如果您可以检查mara表,您将获得关键字段的数量
致谢
Satish Boguda
奥利维拉古堡谢谢。 现在我意识到了问题所在(计算内部表中一列的不同值的数量),我只是在没有上下文的情况下查看了答案的代码,并认为所提议的代码是无意义的(现在我看到了 如果确实要回答问题,请使用SUM而不是COUNT GROUP BY。 但是要提防与传统ABAP相比的性能下降:对于简单聚合" sum(labst)",我对SELECT FROM @itab与REDUCE进行了测试,得出REDUCE:2566.29
/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
您可以改用READ或DO语句,但是对您完全没有帮助。
Rob
最多设置5个标签!
内部表的关键字段是非数字字段。
它不是关键字段计数。
必须根据内部表中的唯一数据进行计数。
没有循环是不可能的,因为它需要对记录数进行操作。
感谢kesavdas。
它完美地工作。
如果您想从内部表定义中获得内部表中的关键字段数
我想如果玛拉
it_mara类型的mara标准表。
因此,如果您可以检查mara表,您将获得关键字段的数量
致谢
Satish Boguda
奥利维拉古堡谢谢。 现在我意识到了问题所在(计算内部表中一列的不同值的数量),我只是在没有上下文的情况下查看了答案的代码,并认为所提议的代码是无意义的(现在我看到了 如果确实要回答问题,请使用SUM而不是COUNT GROUP BY。 但是要提防与传统ABAP相比的性能下降:对于简单聚合" sum(labst)",我对SELECT FROM @itab与REDUCE进行了测试,得出REDUCE:2566.29
/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
您可以改用READ或DO语句,但是对您完全没有帮助。
Rob
一周热门 更多>