2012-07-03 2 views
4

테이블에서 비어 있어야하는 select 필드에서 비교를하는 방법을 알아야합니다. 나는 bkpf에서 stblg 필드가 비어있는 필드를 선택하려고합니다. 나는 이런 식으로했습니다 :bkpf에서 stblg가 비어있는 필드를 선택하십시오 - ABAP

SELECT c~kunnr a~belnr d~spart c~bldat c~waers a~hwaer f~mwskz 
     INTO CORRESPONDING FIELDS OF TABLE lt_data 
     FROM (((bsis AS f 
     INNER JOIN bkpf AS a ON f~belnr = a~belnr) 
     INNER JOIN bsad AS c ON c~belnr = a~belnr) 
     INNER JOIN vbrk AS d ON d~vbeln = c~belnr) 
     WHERE a~gjahr IN gjahr 
     AND a~bukrs IN bukrs 
     AND c~augdt IN augdt 
     AND a~stblg = ' ' 
*  AND a~blart = 'R1' 
     AND f~hkont = '0034930020'. 
*  AND (c~mwskz = 'L0' OR c~mwskz = 'L1' OR c~mwskz = 'L2'). 

이것이 맞습니까, 아니면 다른 것을 사용해야합니까? 감사합니다.

또는

답변

3

를 귀하의 경우에는, 당신은 AND a~stblg = ' '를 사용하거나 이미 AND a~stblg EQ SPACE 언급 - 차이가 없다 (내가 추천 SPACE을 사용하십시오. ' '을 사용하면 공백을 확인하거나 '.'부분에 내용을 기입하는 것을 잊어 버린 경우 확실하지 않습니다.

데이터베이스 레벨 비어 있음은 다른 의미를 가질 수 있습니다. 데이터베이스가 space 또는 ' '사이의 값을 변경하지 않습니다. (NULL)입니다.

당신과 함께 SAP에 NULL을 확인할 수 있습니다 SAP는 일반적으로 빈 문자 값에 대한 공간를 저장하기 때문에 귀하의 경우에는

AND a~stblg IS NULL 

는,이 사항이 아무것도을 선택해야합니다.

+0

감사합니다. 그게 도움이되었다! –

2

, 당신은 사용할 수 있습니다

AND a~stblg EQ SPACE 

-

Talha

+0

감사합니다. 내가 사용한 방식이 옳다. 그렇지 않니? –

+0

그게 대부분의 경우에 맞지만 공간을 사용하는 것이 좋습니다, 그건 어떻게 abap 사전 권장합니다. – Mtu

관련 문제