对象存储_服务器怎么备份_速度快

2021-05-04 17:41

由于SAP HANA引入了代码下推策略,ABAP开发人员使用的一些功能并没有很容易地转化为最新的技术,例如,CDS视图。

在这篇博文中,我们将探讨其中一种使用ABAP CDS视图删除重复条目的方案。

正如我之前在一篇文章中所演示的,ABAP CDS视图并不能为所有开发方案提供完全的灵活性,对于例外情况的另一种解决方案是调整我们的逻辑使用ABAP CDS表函数。如果您仍然没有检查此内容,我建议您在继续阅读之前先看看下面的文章。

在ABAP CD开发中,控制数据集的粒度和删除重复记录是一项相当困难的任务,因为在所有情况下,企业开发软件,使用GROUP BY不足以解决此要求(例如。使用复合键连接)。对于这些特定场景,有一个基于ABAP CDS表函数和一个名为RANK的SAP HANA SQL窗口函数的简单解决方案。

如果您想吸收更多与这些主题相关的内容,返利商城,请查看以下链接。

有用的链接:

ABAP CDS表函数SAP HANA SQL函数窗口函数秩函数(窗口函数)

让我们创建一个简单的示例,并比较目前讨论的两种方法:

ABAP CDS view with GROUP BYABAP CDS table函数排名

根据以下结构创建一个名为ZDEMOCDSRANK的简单表:

填充此表中的一些数据,您可以使用以下条目作为示例:

要求非常简单,我们需要根据最新的参考日期为每个客户提取最新的参考代码。

注意参考代码与参考日期的顺序不一致,如果我们试图用GROUP BY和MAX()来解决此要求,输出将不正确,因为两个字段之间的顺序不同。

首先,让我们尝试基于这种错误方法的ABAP CDS视图并分析输出。

使用GROUP BY的ABAP CDS视图

运行数据预览并检查此CDS视图提供的结果。

如前所述,结果不正确,因为使用GROUP BY的策略无法保持行的完整性。MAX()为每一列带来了最大值,从而在ReferenceCode和ReferenceDate之间产生了一些不一致。

在这种情况下,使用表函数和RANK()的方法可以很容易地解决我们的需求,淘客app,现在让我们检查第二种方法。

ABAP CDS Table函数

再次运行数据预览,这次观察正确的输出。

重要说明:

函数RANK()在选择列表的末尾创建一个数字字段,自助建站开发,根据指定的分区和顺序保留记录的位置:

按客户和客户分区;按参考日期降序排序。

此逻辑为每组客户创建一个排名,爱返利,包括最新记录在顶部,这是我们示例中第一个SELECT语句生成的结果:

第二个SELECT删除重复条目,只查找排名第一的记录,换句话说,为每位客户提供最新的记录。

和往常一样,我希望您喜欢这些内容,下次再见。

分享到:
收藏
相关阅读