4

我想选择在 MSEG 表中没有现有过帐的所有 EKPO 记录。

在 ABAP SQL 中,这可以像下面这样完成:

SELECT ebeln, ebelp FROM ekpo INTO TABLE @DATA(orders)
  WHERE NOT EXISTS ( SELECT ebeln FROM mseg 
                                  WHERE ebeln = ekpo~ebeln
                                    AND ebelp = ekpo~ebelp ).

我找到的唯一解决方案是创建 2 个 CDS 视图,第一个选择在 MSEG 中有记录的所有订单,第二个是第一个的否定。但我希望有一个更清洁的解决方案,所以我想在这里问。

4

1 回答 1

4

我们是这样做的:

define view my_view as 
select from ekpo
association[0..1] to mseg
  on mseg.ebeln = ekpo.ebeln
  and mseg.ebelp = ekpo.ebelp
{
  ebeln,
  ebelp
}
where mseg.mandt is null

如果 中不存在符合条件的条目mseg,则关联的所有字段都将为空。否则,mseg.mandt永远不会为空。

于 2020-03-10T10:02:00.687 回答