数据库表和内部表的连接产生"is not defined in the ABAP Dictionary"



第一: 我正在处理一个现有的代码,并想向它添加一些新的东西,我对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

最新更新