2011-03-08 5 views
1

ty_marc 유형의 내부 테이블을 사용했습니다. 이 내부 테이블에서 은 2 개의 필드 matnr과 werks_d를 사용했습니다. 사용자가 입력 한 내용을 토대로 플랜트에서 제조 된 자재의 수를 계산하고 싶습니다 (marc-werks). select statment의 내부 테이블에있는 필드의 레코드 수를 계산하는 방법은 무엇입니까?

가 나는 물질의 총 수를 계산하고 같은 내부 테이블의 다른 필드의 수를 표시 할

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이 있어야합니다.

답변

3

두 가지 쉬운 옵션이 있습니다.

실제로 식물 (광부)에 관심이 없다면 select 문에 group by 절과 count 기능을 사용하십시오. 뭔가 같이 :

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

구조 it_marc_count는 (분명히 처음과 matnr) 두 번째 위치에 정수 필드를해야합니다. 당신이 werks을 필요로 할 경우

는 가장 쉬운 다음 loop at 루프 (또는 뭔가 유사한)에 at endsum 구조를 사용 matnr에 의해 it_marc 정렬 할 수 있습니다. Processing Table Entries in Loops 끝 부분의 예제를 시작해야합니다.

+0

코드 예제에서'group by '부분을 남겼습니다. –

관련 문제