我采用了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。
答案 0 :(得分:3)
有两个简单的选择。
如果您实际上并不关心工厂(werks),请在group by
语句中使用count
子句和select
函数。类似的东西:
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进行排序,然后使用at end
循环中的sum
和loop at
结构(或类似的东西)。 Processing Table Entries in Loops末尾的示例可以帮助您入门。