第一:
我正在处理一个现有的代码,并想向它添加一些新的东西,我对ABAP
真的很陌生
我的目标:
我想复制一个现有的表,并删除所有多次出现的值。至少我认为这是有效的。之后,我想用另一个已经存在的表INNER JOIN
这个新创建的表,但不幸的是,我总是得到以下错误:
方法方法名称"newCreatedTable";在ABAP字典中未定义为表、投影视图或数据库视图
其他信息:
如您所见,我正在method
内部工作!
这是我迄今为止所做的代码:
创建新表并删除所有重复项
DATA newCreatedTable TYPE STANDARD TABLE OF existingTable.
SELECT columnName
FROM existingTable INTO TABLE newCreatedTable.
DELETE ADJACENT DUPLICATES
FROM newCreatedTable COMPARING columnName.
这里是发生错误的地方
SELECT *
FROM anotherExistingTable as p
INNER JOIN newCreatedTable as t on t~columnName = p~columnName
...
在这种情况下,我希望有人能帮我!提前感谢!
如果我没有错,你的代码看起来是这样的:
DATA newCreatedTable TYPE STANDARD TABLE OF existingTable.
SELECT columnName FROM existingTable INTO TABLE newCreatedTable.
DELETE ADJACENT DUPLICATES
FROM newCreatedTable COMPARING columnName.
SELECT *
FROM anotherExistingTable
INNER JOIN newCreatedTable as t on t~columnName = p~columnName
如果是这种情况,则不能对内部表进行SELECT。只能对ABAP字典中存在的表执行此操作。
你的代码应该是这样的:
DATA newCreatedTable TYPE STANDARD TABLE OF existingTable.
SELECT columnName
FROM existingTable INTO TABLE @newCreatedTable.
DELETE ADJACENT DUPLICATES FROM newCreatedTable COMPARING columnName.
SELECT *
FROM anotherExistingTable
FOR ALL ENTRIES IN @newCreatedTable " <-------------- Use FOR ALL ENTRIES
WHERE columnName = @newCreatedTable-columnName. " <-- in your code