Как посчитать количество записей поля во внутренней таблице в выбранной записи? - PullRequest
1 голос
/ 08 марта 2011

Я взял внутреннюю таблицу типа 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.

1 Ответ

3 голосов
/ 08 марта 2011

Есть два простых варианта.

Если вы на самом деле не заботитесь о растении (вредителях), используйте предложение 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, проще всегоотсортируйте it_marc по matnr, затем используйте конструкции at end и sum в цикле loop at (или что-то подобное).Примеры в конце Обработка записей таблицы в циклах должны помочь вам начать работу.

...