点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
你好大师,
我最近开始与CDS协会合作,并且注意到与加入相比,它具有一些局限性。 局限性之一似乎是,如果我们想在同一CDS视图中使用其他表中的字段,则只能在所有打开条件下使用第一个数据源中的字段。
根据上面的示例,我们不能在同一CDS视图的路径表达式中使用_LFA1,因为我们在ON条件下使用了$ projection.lifnr,这属于关联_BSEG,它不是第一个数据源。 如果我们在这里使用JOIN而不是关联的话,它会很好地工作。 有人可以解释为什么我们对关联有这种限制吗?
此外,如果我删除路径表达式并仅公开_LFA1,则错误也将被删除,但我得到以下警告。
有人可以解释一下它们的意义吗? 感谢您的帮助!
温馨的问候,
Raveesh
association-with-error.jpg (73.1 kB)
$ projection表示当前的SELECT列表。 为了避免冲突,这在某种程度上限制了关联。 使用数据源本身而不是$ projection来消除错误。
基数记录了数据模型,并且应该在整个视图中与真实数据保持一致。 从最新版本开始,HANA会评估基数以进行优化。
Hi Horst,
感谢您的回复!
即使我使用_BSEG而不是$ projection,我仍然会收到错误,尽管有所不同。 消除错误的唯一方法是将BSEG作为第一个数据源移到顶部,然后我可以在ON条件下使用它,无论我使用BSEG还是$ projection都可以正常工作。 这意味着,如果我要连接一系列表,例如A-> B-> C,则在ON条件下不能将B中的字段用于B和C之间的关联,因为JOIN可以很好地工作 。 关联看起来像是用于星型连接的场景,我们将事实表作为第一个表,并将其连接到其他维度表。
请问一次。
感谢和热烈问候,
Raveesh
此外,我只是检查了提供的基数无关紧要。 无论我提供[0 .. *],[1..1]或[0..1],它总是返回数据库中实际存在的条目数。 这是否意味着基数仅用于指示目的?
谢谢
Raveesh
如果您在HANA上并选择count(*),则可能会看到效果(从7.50左右开始)。 这是因为HANA基于基数进行了优化,因此表示的值应反映真实的数据模型,否则结果可能会有所不同。
PS:请不要再回答您自己的问题。
一周热门 更多>