2014-05-09 2 views
1

ABAP 프로그램의 ROW_NUMBER() 함수에 해당하는 항목이 있습니까? SQL에서 다음과 같이ROW_NUMBER()에 대한 Open SQL 해당

이 기능을 사용 : 그것은 결과 행의 첫 번째 열 (이 결과에서 행 번호 될 것입니다 만약 내가 확실 해요로 행 번호를 반환해야합니다

SELECT ROW_NUMBER() OVER (ORDER BY SomeField) AS Row, * 
FROM SomeTable 

세트 또는 소스 테이블의 행 x 호). 이 진술은 SAP Business One에서 사용할 수 있지만 Open SQL에 상응하는 서비스를 찾을 수없는 것으로 나타났습니다.

색인이 할당되도록 결과 itab을 수동으로 반복해야합니까?

+0

호기심에서 벗어났습니다. 무엇이 필요할까요? 행 번호는 휘발성이 될 것이므로 어떤 식으로 행할 것입니까? – vwegert

+0

기본 사용 사례는 행 번호를 XML 또는 ALV로 보낼 수있는 구조의 자체 열에 제공하는 것입니다. 이 함수는 하나의 SELECT로이 전체 구조를 채울 수 있도록합니다. 임시 itab에 선택한 날짜를 넣고 itab을 반복하고 행 번호를 채우지 않아도됩니다. – Lilienthal

+0

오픈 SQL 대신 네이티브를 사용할 수 있습니다. http://help.sap.com/saphelp_nw04/helpdata/en/fc/eb3b8b358411d1829f0000e829fbfe/content.htm – Jorg

답변

2

레코드가 나중에 ABAP 프로그램에서 액세스 할 수 있도록 보관되는 행을 저장하는 경우이를 저장할 필요가 없습니다. 루프가 진행되는 동안 유지됩니다. 좋아하는 것. 다시 테이블로 저장 한 후 내용을 수정하는 경우

LOOP AT itab INTO wa_itab. 
write /:sy-tabix "This is the index of the record within the table 
ENDLOOP. 

, 당신의 값 열을 추가하고 같은 수행 자료 : my_string 유형의 문자열입니다.

LOOP AT itab INTO wa_itab. 
my_string = sy-tabix. 
CONCATENATE some_text my_string more_text into wa_itab-my_field. 
MODIFY itab FROM wa_itab. "Here you can leave out INDEX sy-tabix because it is inside a loop and the current line will be used. 
CLEAR my_string. 
ENDLOOP. 
관련 문제