메뉴 건너뛰기

SAP 한국 커뮤니티

<img src=3.gif border=0>도무지 로직이 안서요.. 도와주세요..ㅠㅠ

멀고도험한 2009.08.02 23:00 조회 수 : 1264

예를 들어..한 학년의 성적데이터가 있다고 할때..


1반 모든 학생들의 성적, 2반 학생들의 성적이 쭉~있겠죠.


근데 몇반까지 있는지는 알수 없어요^^;;


 


이 모든 한 학년의 데이터가 internal table에 담겨 있을 때,


각 반별로, 성적 상위권부터 sorting을 해놓고,


 


각 반의 상위 10%째에 해당하는 학생을 구할려면 어떻게 해야 할까요?


 


반이 10개라면 각 반의 상위10%학생의 데이터 총 10개가 만들어지고,


반이 20개라면 총 20건의 데이터가 만들어져야 해요..


 


에휴..도대체 어떻게 해야 할지 모르겠네요.


 


도와주세요~ㅠ_ㅠ


 


 


 


제가 생각한 방법은..


data: it_alldata =>전체데이터,


        it_temp   =>반 번호를 가지고 있는 itab


        lv_line   =>총라인수


        lv_index =>90%째 데이터 줄


 


1) 전체 itab에서 delete duplicate를 사용하여 몇반까지 있는지 반의 갯수를 정한다.


    it_temp = it_alldata


   

DELETE ADJACENT DUPLICATES FROM it_itab COMPARING ban.


 


2) 반을 loop 을 돌면서 전체 데이터에서 현재 룹돌고 있는 반을 다른 internal table에 넣는다.


   loop at it_temp into wa_temp.


     loop at it_alldata into wa_alldata where ban = it_temp-ban.


       append wa_alldata to it_ban1.


     endloop.


   endloop.


 


3) 반의 갯수만큼 생성된 itab에서 90%째 데이터를 취득한다..


  describe table it_ban1 lines lv_line.


  lv_line = lv_line * 0.9.


  read table it_ban1 index lv_line into wa_ban1.


 



  describe table it_ban1 lines lv_line.


  read table it_ban1 index lv_line into wa_ban1.


.


.


.


총 반의 갯수만큼 계속 구한다..ㅠㅠ


 


 


=> 이럴때, 각 반마다의 학생 데이터를 넣기 위해 itab을 선언해야 하는데..데이터 선언시에는 몇개의 itab을 만들어야 할지 모른다는 단점이 있습니다..


데이터가 많을 땐 loop 을 계속 돌아서 시간도 엄청 걸릴테구요..


(실제로 몇만껀의 데이터가 될지 모르는 실정입니다ㅠㅠ)

번호 제목 글쓴이 날짜 조회 수
3926 <img src=2.gif border=0>Reuse ALV에서 저장 후에 저장 버튼 비활성 시키는 방법 [5] 수욕정이풍부지 2009.08.14 2557
3925 [요청] TREE 프로그램에서 DISPLAY 화면에서 EXPAND보이는 방법. [3] 태사성 2008.11.20 3262
3924 <img src=3.gif><img src=2.gif border=0>테이블의 필드 존재 여부 확인하는 함수가 있을 까요? [2] 십년만에 2009.08.14 1371
3923 <img src=3.gif border=0>클래스 ALV에서 맨앞에 상자를 선택했을때? [6] 예스맨 2009.08.13 1869
3922 <img src=3.gif border=0><img src=3.gif border=0><img src=3.gif border=0>alv 합계 문의(돈 필드가 xxx.xx 문제) [4] file 궁금이 2009.08.13 1234
3921 <img src=2.gif border=0>엑셀 다운로드시... gui_down로드 펑션쓸때...숫자를 char로 지정했는데도..숫자형식으로 나올때? [3] 윤사모 2009.08.13 2204
3920 <img src=3.gif border=0>[急!]Call Transaction 할때 Parmeter ID가 없다면....... [7] Bizzard.Chul 2009.08.13 1359
3919 <img src=2.gif border=0>NUMERIC 자릿수에 관한 질문입니다. [2] james80 2009.08.12 1399
3918 <img src=2.gif border=0>BAPI 로 material 생성 시 Material number [1] Diem 2009.08.12 1329
3917 <img src=3.gif><img src=2.gif border=0>외상매출금 연령분석법] 요구가 있습니다. 혹시..해보신 분들 있으신지요? [6] file sagar 2009.08.11 1172
3916 <img src=2.gif border=0>코딩블럭에 관련된 자료를 구할수 없을 까요?? [2] Cruel 2009.08.10 1966
3915 <img src=3.gif border=0>Selection Screen에서 셀렉트 옵션 값 변경하는 펑션 [5] 쿵푸ㅋ 2009.08.10 1318
3914 <img src=1.gif border=0>data_changed에 대해서 질문드립니다. 화염광마 2009.08.07 1103
3913 <img src=2.gif border=0>테이블 유지보수 생성기로 뷰에 필드 추가 하는방법.. [6] 띠로리~ 2009.08.07 2613
3912 <img src=2.gif border=0>화면이동 관련 질문입니다~~ 1000번 화면으로 가고싶어요~~ [2] gus 2009.08.07 1793
3911 <img src=1.gif border=0>출력장치(SPAD) 등록 연결 방법- HP젯다이렉트로 구성된 HP레이저 프린터 신삥 2009.08.07 2337
3910 <img src=2.gif border=0>로그온 Language에 따른 언어 변경 [1] 신삥 2009.08.07 1574
3909 <img src=1.gif border=0>ALV 'REUSE_ALV_GRID_DISPLAY_LVC' 펑션에서 엔터 키 적용방법 아시는분 계신가요? [3] .... 2009.08.06 1874
3908 <img src=3.gif border=0>[질문] 리포트의 이벤트중 start-of-selection 이벤트를 강제로 타게하는 방법없나요? [6] 예스맨 2009.08.05 1108
3907 <img src=2.gif border=0>MESSAGE 명령어에 나오는 TEXT에 색상이나 두께를 진하게 하고자 합니다. [1] 대지꿀꾸링 2009.08.05 973