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系统整个业务的核心, 不是简单的增,删, 改, 查!
希望这简单的回答能对你有所帮助!