如何在select语句中统计内表某个字段的记录数?

发布于 2024-10-20 19:22:18 字数 543 浏览 1 评论 0原文

我采用了 ty_marc 类型的内部表。 在此内部表中,我采用了 2 个字段 matnr 和 werks_d。 我想根据用户给出的条目来计算工厂(marc-werks)制造的材料数量。

我将代码编写为...

if so_matnr is not initial.
select matnr werks from marc 
into table it_marc
where matnr in so_matnr.
endif.

loop at it_marc into w_marc.
write :/ w_marc-matnr. ( how to count total number of material eg:- material number : 100-100 to 100-110).
       w_marc-werks.
endloop.

我想计算材料的总数并在同一内部表的另一个字段中显示计数。 注意:物料编号 100-100 可能有 10 种物料,因此我希望同一内表的另一个字段中的计数为 10,而 100-110 可能有 n 条记录,并且该字段中的计数应为 n。

I took a internal table of type ty_marc.
in this internal table i took 2 fields matnr and werks_d.
I want to count number of materials manufactured in the plant (marc-werks) based on the entry given by user.

I wrote the code as...

if so_matnr is not initial.
select matnr werks from marc 
into table it_marc
where matnr in so_matnr.
endif.

loop at it_marc into w_marc.
write :/ w_marc-matnr. ( how to count total number of material eg:- material number : 100-100 to 100-110).
       w_marc-werks.
endloop.

I want to count total number of material and display the count in another field of same internal table.
Note : there could be 10 material for material number 100-100, so i want the count as 10 in another field of same internal table and 100-110 could have n records and the count should be n in the field.

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

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

发布评论

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

评论(1

与他有关 2024-10-27 19:22:18

有两个简单的选择。

如果您实际上并不关心工厂 (werks),请在 select 语句中使用 group by 子句和 count 函数。类似于:

select matnr, count(*)
from marc
where matnr in so_matnr
group by matnr
into table it_marc_count.

结构 it_marc_count 需要在第二个位置有一个整数字段(显然第一个位置有 matnr)。

如果您确实需要 werks,最简单的方法是按 matnr 对 it_marc 进行排序,然后在 loop at 循环中使用 at endsum 结构(或者类似的东西)。 处理循环中的表条目 应该可以帮助你开始。

There are two easy options.

If you don't actually care about the plant (werks), use the group by clause and the count function in your select statement. Something like:

select matnr, count(*)
from marc
where matnr in so_matnr
group by matnr
into table it_marc_count.

Structure it_marc_count would need to have an integer field in the second position (and matnr in the first obviously).

If you do need werks, the easiest is to sort it_marc by matnr then use the at end and sum constructs in the loop at loop (or something similar). The examples at the end of Processing Table Entries in Loops should get you started.

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