1. abap 如何得到內表中不重復的記錄。
1.循環你的內表到工作區: wa
2. 你的內表到另一個一樣的內表: itab_
3. delete itab_ where f1 <> wa-f1 and f2 <> wa-f2 ...
4. 檢查itab_剩餘條數,如果等於1,那麼說明這是條不重復的記錄,如果>1那麼是重復的
5.如果不重復append 到一個結果表中
循環結束,你就得到了所有不重復的記錄。
2. abap 如何得到內表中不重復的記錄。
如果重復的紀錄是沒有用的話,Delete adjacent plicates from itab.是比較好的選擇。如果 有用,at new 或者在不允許用at new的情況下用變數做判斷。at new 的用法,sap幫助里是有 的。希望大家多看看幫助。因為幫助里對每個命令都有解釋跟提供例子。
3. abap報表開發中如何輸出不滿足條件的數據
有很多種方法完成,我就說一種比較簡單的吧!
根據你的條件先把A表中的物料全取出到內表T1,同時把B表中的物料全取出到內表T2,然後循環內表T1,在循環中讀取T2表中是否存在該物料號,如果存在,就刪掉T1中的這個條目,如下:
DATA:
T1
TYPE
TABLE
OF
A
WITH
HEADER
LINE,
T2
TYPE
TABLE
OF
B
WITH
HEADER
LINE.
SELECT
*
FROM
A
INTO
TABLE
T1
WHERE
<Condition>.
SELECT
*
FROM
B
INTO
TABLE
T2
WHERE
<Condition>.
LOOP
AT
T1.
READ
TABLE
T2
WITH
KEY
MATNR
=
T1-MATNR.
IF
sy-subrc
=
0.
DELETE
T1.
ENDIF.
ENDLOOP.
這樣最後T1中留下的數據就是你想要的數據
4. ABAP如何查詢表1(自建表)表2(透明表)兩表中不同時存在的一組數據並輸出
如果兩個表有關聯關系的話,可以根據表一的主鍵去表2里把相關的內容帶出來
5. hello,我在百度看到你回答「關於abap 如何高效獲取內表重復數據這個問題」有類似問題需要像你請教
直接刪除重復項。
SORT 內表 BY 欄位一 欄位二 欄位三.
DELETE ADJACENT DUPLICATES FROM 內表 COMPARING 欄位一 欄位二 欄位三.
這樣內表剩下的就是三個欄位值不一樣的記錄了
6. SAP ABAP 里使用select 篩選條件里 在另一個表裡查找結果為真或假的怎麼寫 不好意思,沒什麼分。
ABAP有它自己獨特的取數方法與邏輯, 和我們用SQL語句直接查詢不同, 這個思維要轉換過來! !
第一步: 到出作為篩選條件的數據放入內表:
SELECT vbeln
FROM vbfa
INTO TABLE gt_vbfa
WHERE vbtyp_n = 'J' .
第二步: 用FOR ALL ENTRIES IN 前要先判斷是否為空
IF gt_vbfa IS NOT INITIAL .
SELECT matnr lfimg vrkme
FROM lips
INTO gt_lips
FOR ALL ENTRIES IN gt_vbfa
WHERE vbeln = gt_vbfa-vbeln
AND vbelv = gt_vbfa-vbelv
AND posnv = gt_vbfa-posnr .
ENDIF .
第三步: 使用內表裡面的數據
LOOP AT gt_lips INTO gwa_lips
......
ENDLOOP .
備注:ABAP 還有很多規范及性能上的要求, 總之數據是SAP系統整個業務的核心, 不是簡單的增,刪, 改, 查!
希望這簡單的回答能對你有所幫助!