loop at iqals .
select f~toleranzob f~toleranzun f~sollwert => 1)
from mapl as d
~
into corresponding fields of table iqals_i =>1)'
where a~aufnr = iqals-aufnr
and a~plnbez = iqals-matnr.
dbcnt = sy-dbcnt.
sort iqals_i by aufnr.
loop at iqals_i . =>2)
move-corresponding iqals_i to iqals.
temp2_zso = iqals_i-sollwert.
iqals-c_sol = temp2_zso.
temp2_zob = iqals_i-toleranzob.
iqals-c_zob = temp2_zob.
condense iqals-c_sol.
condense iqals-c_zob.
modify iqals. =>2)'
endloop.
select single user1 ~ desc5
into (iqals-zname,iqals-desc1,~,iqals-desc5)
from ztqm0015
where matnr = iqals-matnr
and aufnr = iqals-aufnr
and hogi = iqals-hogi.
modify iqals.
endloop.
1)부분을 single로 처리시에는 처음데이터만 읽고 전체 데이터를 읽지 못해 1)'로 처리하였습니다.
loop at iqals . 안에서 1)'를 읽은것을 2)로 해서 iqals에 2)'의 modify처리를 하고 싶은데요..
가능한지 고수님들의 의견을 듣고 싶습니다.
댓글 6
-
운차이
2008.04.02 21:43
-
김현준
2008.04.02 21:47
append 나 collect 시키시면 될것 같은데요...중복 안시키시려면 collect 하시면 될 것 같은데요.정확한 의도를 알려주세요~ -
초보아밥퍼
2008.04.02 21:50
중첩루프를 돌리는것은 지향하지 않습니다.. 퍼퍼먼스가 그정도로 많이 떨어지기 때문이죠
거기다가 select 까지 하신다면 더더욱이 느려지겠죠. 예외적으로 어쩔수 없는경우엔 써야죠
그래서 조금 나은것이...
select f~toleranzob f~toleranzun f~sollwert
from mapl as d
~
into corresponding fields of table iqals_i
FOR ALL ENTRIES IN iqals
where a~aufnr = iqals-aufnr
and a~plnbez = iqals-matnr.
이방법이구요..
sort iqals by aufnr matnr.
loop at iqals_i .
read table iqals with key aufnr = iqals_i-aufnr 한건이라는 가정하에(key 기준을 몰라서)..
plnbez = iqals_i-matnr
BINARY SEARCH.
if sy-subrc = 0.
move-corresponding iqals_i to iqals.
temp2_zso = iqals_i-sollwert.
iqals-c_sol = temp2_zso.
temp2_zob = iqals_i-toleranzob.
iqals-c_zob = temp2_zob.
condense iqals-c_sol.
condense iqals-c_zob.
select single user1 ~ desc5
into (iqals-zname,iqals-desc1,~,iqals-desc5)
from ztqm0015
where matnr = iqals-matnr
and aufnr = iqals-aufnr
and hogi = iqals-hogi.
modify iqals index sy-tabix.
endif.
endloop.
머 이렇게 표현할수 있겠는데... 이게 저의 한곕니다 ㅜㅜ
-
풍뎅이
2008.04.03 00:38
자재 s/No. 기준치 하한치 상한치 입력값 생산오더
C11192 8006 210.000 211.000 110.000 209.994 1004798
C11192 8006 222.000 234.000 232.000 266.994 1004798
C11192 8006 112.000 111.000 101.000 139.450 1004798
C11192 8006 130.000 130.000 75.000 107.950 1004798
C11192 8006 135.000 135.000 120.000 107.950 1004798
제가하려는건
전체 레코드(iqals)를 먼저 돌리고 그안에 기준치, 하한치, 상한치값을 select~(iqals_i)해서
modify하려는 것입니다.
초보아밥퍼님 말씀대로 해보았지만 데이터는 나오지 않네요..
-
초보아밥퍼
2008.04.03 01:47
지금 방법이 전체 레코드(IAZLS) 를 돌리면서 SELECT를 하고 난후에
전체 레코드를 돌려서 테이블의 값을 iqals_i 에다 담기로직
*********************************************************
select f~toleranzob f~toleranzun f~sollwert
from mapl as d
~
into corresponding fields of table iqals_i
FOR ALL ENTRIES IN iqals
where a~aufnr = iqals-aufnr
and a~plnbez = iqals-matnr.
****************************************************
SELECT 나온값으로 루프돌려서 전체레코드에 모디파이 시키는 상황인데...
위 레코드의 데이터를 보면 제가 말씀드린거와같이... 기준되는 키값이 어떤건지 몰르겠네요.
지금 레코드로 봐서는 기준이 없어요 ㅜㅜ
-
푸~
2008.04.09 21:07
설명이 넘모자랍니다.
a 테이블에 sample 자료....
b 테이블에 샘플자료..
어떻게 결과가나와야하는지 설명이 있고 결과값이 있어야지
사람들이 고수들이 답변해줄것 같은데..
iqals 이 테이블의 데이타로 select할때 여러건이 나온다면 어떤 값을 iqals이 테이블에 modify 하려고 하시는지요?
두번째 loop은 iqals_i 테이블의 마지막 값만 iqals테이블에 modify 되기때문에 의미가 없습니다.