在具有多个LEFT JOIN和WHERE条件的CDS视图创建方面需要帮助

2020-09-16 15:14发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨, 我正在尝试创建CDS...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

我正在尝试创建CDS视图以从4个表(ACDOCA,KNA1,MAKT和ADRC)中提取数据。 我的要求是显示ACDOCA的所有记录,即使KNA1或MAKT中没有相应的引用记录也是如此。 下面是我的写法:

 @ AbapCatalog.sqlViewName:'ZV_CDS_TEST'
 @ AbapCatalog.compiler.CompareFilter:是
 @ AccessControl.authorizationCheck:#检查
 @ EndUserText.label:" CDS测试视图"
 将视图ZVA_CDS_TEST定义为从acdoca中选择
 左外连接kna1
     在kna1.kunnr = acdoca.kunnr
 左外连接
     在makt.matnr = acdoca.matnr
 左外连接adrc
     在adrc.addrnumber = kna1.adrnr上
 {
   acdoca.poper作为poper,
   acdoca.budat作为budat,
   acdoca.gjahr作为gjahr,
   acdoca.rbukrs作为rbukrs,
   acdoca.re_account作为re_account,
   kna1.erdat作为erdat,
   acdoca.matnr作为matnr,
   makt.maktx作为maktx,
   acdoca.kunnr作为kunnr,
   kna1.name1作为name1,
   kna1.brsch作为brsch,
   kna1.adrnr作为adrnr,
   adrc.country作为国家/地区,
   acdoca.rtcur作为rtcur,
   acdoca.tsl as tsl,
   adrc.date_to作为date_to
 在哪里
     makt.spras ='E'AND
     adrc.date_to ='99991231'
 

现在,由于WHERE子句,上面的内容我没有看到表ACDOCA中的所有记录,但同时,我想基于这些条件来限制MAKT和ADRC记录。

这可以通过CDS完成吗?还是必须将其拆分为多个CDS视图?还是最好使用多个SELECT查询和合并逻辑来创建报告?

谢谢

Shrinivas