在子查询中选择多个字段

gue*_*tli 2 abap opensql

此 ABAP 代码有效:

  select *
   into table <sub_result>
  from ADRC
  WHERE ADDRNUMBER
  in ( select ADRNRA from AUFK where (cond_string) ).
Run Code Online (Sandbox Code Playgroud)

但这不会:

  select *
   into table <sub_result>
  from ADRC
  WHERE (ADDRNUMBER, MANDT)
  in ( select ADRNRA, MANDT from AUFK where (cond_string) ).
Run Code Online (Sandbox Code Playgroud)

AFAIK元组语法(ADDRNUMBER, MANDT)对SQL有效。这在 ABAP 的 Open SQL 中无效吗?

如果不允许元组语法,我该怎么办?

PS在 Open SQL 中不需要检查 MANDT,所以这只是示例查询。

Pel*_*lin 5

您不能将 in 用于多列。像这样尝试:

SELECT *
  INTO table <sub_result>
  FROM ADRC d
  WHERE exists ( select 1 from AUFK a where a~ADDRNUMBER = d~ADDRNUMBER and a~MANDT = d~MANDT)
Run Code Online (Sandbox Code Playgroud)