안녕하세요 오늘도 즐거운 퇴근시간이 아니라 야근시간이 돌아 오는것 같습니다.^^
인터널테이블 중에서 한 필드의 가장 큰값을 뽑면서 해당 tabix를 알수 있는 간단한 방법이 없을까요?
data : begin of itab occurs 0 with header line,
data1 type i,
end of itab.
itab = { 10, 20, 5, 40, 1 } 와 같이 있을때 말이죠
물론 아래와 같이 sort도 사용할수 잇는데 쩝 그러네요..
1.인터널 테이블 복사
temp[] = itab[].
2. sort 오름차순(min)
3. read table temp index 1.
4. sort 내림차순(max)
5. read table temp index 1.
댓글 4
-
덩콘
2010.06.25 03:25
-
Risky
2010.06.25 18:13
별로 차이는 없지만, 참고해 보세요.
https://forums.sdn.sap.com/message.jspa?messageID=5646617
There is one way you can get the Max, MIn & avg values from internal table.
SORT (the internal table) BY (Key).
READ TABLE it_table INTO wa_table INDEX 1.
IF sy-subrc EQ 0.
"This forms the Min value
ENDIF.
DESCRIBE TABLE it_table LINES v_line.
READ TABLE it_table INTO wa_table INDEX v_line.
IF sy-subrc EQ 0.
"This forms the Max value
ENDIF.
ENDIF. -
맑은하늘
2010.06.25 22:36
internal table 에 대하여 제가 아는한도에서는 원하는 기능은 없는 것 같습니다.
말씀하신대로 오름차순 내림차순으로 정리하셔서 1번째 읽으셔야 할 것 같네요. ^^;
아니면 오름차순으로 정리하시고 1번째(최소), 마지막(최대)로 읽으셔도 되구요.
sort itab by field assending(기본설정이므로 생략가능).
describe table itab lines lv_tabLInes.
readt table itab index : 1 into ls_min_struc, "" 최소값 레코드 정보
lv_tabLines into ls_max_struc. "" 최대값 레코드 정보
대충 이렇겠네요. ^^ 해놓고 보니 Risky 님과 같네요. ^^;;; 수고하세요.
-
Abap
2010.06.26 02:12
그냥 상상만 해봅니다^^ 작은걸 고를 때는 첫 값을 쥐고 다음값과 비교하여 작으면 계속 쥐고 있고 크면 새걸 쥐고 있는...
그래서 그 새거의 테이블 인덱스도 한곳에 저장해두면 안될까요?^^
루..루프.....
말고는 왜 생각이 안날까요
제가 오늘 머리에 쥐나는 날인가봐요