SELECT SINGLE labst INTO itab-labst
FROM mard
WHERE werks = itab-werks
AND matnr = itab-idnrk.
를 읽었서 데이터의 유무를 판단할 때는
IF NOT itab-labst IS INITIAL.
로 하는데요. 1건인 경우와 2건 이상인 경우를 판단해야 합니다.
count로 세는 방법 밖엔 없는지요..
댓글 7
-
you1228
2007.12.29 06:52
-
전컴
2007.12.29 08:40
방법이야 사용하기 나름인거 같습니다만... 쿼리를 이용한 count도 있을것이고, 인터널테이블에 담아서 라인수를 세는것도 있을것이고... 위의 님처럼 dbcnt를 사용해도 같은 효과를 볼 수 있습니다.
참고로... 데이터유무를 판단할때 변수에 담아서 널인지 아닌지 구별해도 되지만, SY-SUBRC를 사용해도 됩니다. 0이면 있는것이고, 0이 아니면 없는것이지요. 이처럼 방법은 몇가지 됩니다... 편리하거나 손에 익은거 사용하시면 됩니다~
-
풍뎅이
2007.12.30 02:22
답변 감사드립니다.
-
Silent.ww
2008.01.03 00:32
SELECT SINGLE에 SUBRC가 0인 경우에 DBCNT가 1이상일 수가 있나요?데이터가 한건 이상인 경우가 있다면,
SELECT SINGLE을 사용하시면 안될듯 하네요...INTERNALE TABLE에 담아 해당 INTERNALE의 DBCNT를 확인 하는 방법과,
COUNT( )를 사용하여 하시는게 나을듯 하네요...수고요~~
-
풍뎅이
2008.01.03 17:59
silent.ww님.. DBCNT나 COUNT( )를 data로 변수 선언하고 DBCNT = DBCNT +1 씩 증가시키라는 말씀이시지요? -
하루나
2008.01.07 18:21
COUNT만 사용을 할려면 ITAB에 DBCNT필드를 추가하여 ITAB-DBCNT LIKE SY-DBCNT
SELECT COUNT( * ) INTO ITAB-DBCNT
FROM mard
WHERE werks = itab-werks
AND matnr = itab-idnrk.
이렇게하여 개수만 넣는 방법이있고 LABST을 넣을려면 LGORT를 추가한 DTAB을 생성해야 하겠군요.
현재 플랜트만 키라면 Storage location별 수량을 넣을수가 없습니다.
SELECT SUM( LABST ) INTO ITAB-LABST
FROM mard
WHERE werks = itab-werks
AND matnr = itab-idnrk.
-
박근형
2008.01.11 22:36
count를 날려보심은 어떨지요..
음..sy-dbcnt 로 알수있을꺼같습니다.
if sy-dbcnt = 1 or 1 이상인거.....