点击此处---> 群内免费提供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
加德,你好
尝试将您的MAKT和ADRC选择移到相应的LEFT OUTER JOIN子句ON条件。
关于Ulad,
恐怕您不能根据需要使用连接,因为:带连接的SELECT语句的WHERE条件将应用于使用连接创建的结果集。 您可以在这里阅读有关内容:
https://help.sap.com/doc/abapdocu_750_index_htm/7.50/en -US/abapselect_join.htm
您是否考虑改为使用关联? 关联内部有过滤器,您可以尝试。 在此处阅读更多信息:
https://blogs.sap。 com/2017/03/07/inner-join-with-cds-associations-abap-on-hana/
一周热门 更多>