错误的结果从HANA DB上的CDS离开外部联接

2020-09-29 17:28发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)系统: SAP ERP 6....

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

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


系统:

SAP ERP 6.0/EHP7 for SAP ERP 6.0

SAP NETWEAVER 7.4

HANA DB版本1.00.122.05.1481577062

软件组件版本支持软件包的补丁程序级别

SAP内核7.45 64位UNICODE SP310 000310

目前,我正面临一个特殊的问题。 我在 service.sap.com 上进行搜索,发现了类似的问题,但都与非HANA- 数据库。

问题。

我已经建立了一个CDS,并在MARA和MSEG之间建立了连接。 联接是LEFT OUTER JOIN。

但是,结果似乎是一个INNER JOIN:左表MARA具有条目,而右表MSEG没有条目。 结果是CDS没有返回记录。

定义视图Zcds_Artikel_Omzet
 带有参数p_date:abap.dats

 作为精选的不同mara.matnr,mara.mtart,mara.mstae,mara.mstde,mara.lvorm,mara.attyp,mara.satnr,
     case mseg.bwart当'251'然后''else'X'以verwerken结尾时

 来自mara as mara
                   
 左外连接mseg作为mara.matnr = mseg.matnr上的mseg
 mseg.mblnr = mkpf.mblnr上的左外部连接mkpf和
                         mseg.mjahr = mkpf.mjahr

 其中mkpf.bldat> = $ parameters.p_date
 

对于某些材料(没有MSEG记录),无论是否添加DISTINCT,都不会返回结果。 我至少希望MARA提供的细节像通常的左外连接会提供的那样。

我什至尝试替换

其中mkpf.bldat> = $ parameters.p_date 

其中mseg.budat_mkpf> = $ parameters.p_date 

但是结果保持不变:找不到记录。

在要返回的字段列表中包含BSEG字段也导致找到0条记录。

我已经在纯ABAP中重建了选择,但是即使在这里也没有记录返回。

还有其他人遇到过同样的问题吗? 如果是这样,您是如何解决的?

此致

Guus

 
7条回答
小c菟菟
2020-09-29 18:31

@Horst不幸的是,我使用的是ABAP 7.4。 您的示例无法激活。 不过,我对左外部联接的期望并不正确。 我在MARA中有特定的材料,但是在MSEG中没有该材料的记录(已通过SE16N检查)。 据我所知,左外部联接仍应返回结果。

@Raymond扩展为IS NULL不会影响结果。 但是,扩展左外部联接似乎有效。 但是,为什么我却躲不开。

无论如何,谢谢您的回复!

致谢

Guus

一周热门 更多>