前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【第八篇】SAP HANA XS使用Data Services查询CDS实体【二】

【第八篇】SAP HANA XS使用Data Services查询CDS实体【二】

作者头像
matinal
发布2020-11-27 15:35:16
8700
发布2020-11-27 15:35:16
举报
文章被收录于专栏:SAP Technical

前言部分

大家可以关注我的公众号,公众号里的排版更好,阅读更舒适。

正文部分

接上一篇,继续

7、使用条件限制结果集。可以使用$ where()方法来设置限制查询返回的结果集的条件。 以下示例显示如何选择净额等于其订单净额的一半(或更多)的所有项目。

代码语言:javascript
复制
​
var qSelectedOrders =
 qOrderAndItemTitles.$where(soHeader.items.NETAMOUNT.
$div(soHeader.NETAMOUNT).$gt(0.5)) 

​

对诸如项目之类的字段和关联的引用可以作为实体构造函数的属性,例如soHeader.items。 如在投影(projections)的情况下,XSDS会自动为条件引用的关联生成所有必需的JOIN,即使它们不是当前投影(projections)的一部分。 要在$中创建更复杂的表达式。可参看前面介绍的API。

8、将查询条件细化为特定的匹配模式。

使用 matching()方法,可以使用 find()和

代码语言:javascript
复制
​
qSelectedOrders = qSelectedOrders.$matching({
 items: {
 CURRENCY: 'EUR',
 QUANTITY: {
 $gt: 2
 }
 }
});

​

9、向结果集中添加任意值。

可以使用$ addFields()方法将任意计算值添加到结果集中。 以下示例显示如何查询自交付销售项目以来通过的天数。

代码语言:javascript
复制
​
qSelectedOrders = qSelectedOrders.$addFields({
 "DaysAgo": soHeader.items.DELIVERYDATE.$prefixOp("DAYS_BETWEEN", new
Date())
});

​

10、使用具有计算字段的聚合。

汇总是将 addFields()运算符与附加 aggregate()方法组合的计算字段的特殊情况。 以下示例显示检索前100个销售订单ID的平均数量及其产品ID。

代码语言:javascript
复制
​
var qAverageQuantity = soItem.$query().$limit(100).$aggregate({
 SALESORDERID: true,
 PRODUCTID: true
}).$addFields({
 averageQuantity: soItem.QUANTITY.$avg()
});

​

如果需要使用更具限制性的投影,则可以在$ aggregate调用中替换为false,如以下示例所示,将删除结果集的销售订单ID。

代码语言:javascript
复制
​
var qAverageQuantity = soItem.$query().$limit(100).$aggregate({
 SALESORDERID: false,
 PRODUCTID: true
}).$addFields({
 averageQuantity: soItem.QUANTITY.$avg()
});

​

11、指定结果集的顺序。

要在结果集中指定顺序,可以使用 order()方法,其中包括多个订单条件作为参数。 每个订单标准包含一个属性“by”和一个定义所需顺序的表达式。 可选地,每个标准可以包含标记 desc以要求降序和

代码语言:javascript
复制
​
qSelectedOrders = qSelectedOrders.$order({$by: soHeader.NETAMOUNT,
$desc:true},
 {$by: soHeader.items.NETAMOUNT});

​

12、从结果集中删除重复项。

$ distinct运算符从结果集中删除重复项。 以下示例显示如何显示销售订单中使用的所有货币的集合。

代码语言:javascript
复制
​
var qAllCurrencies = soHeader.$query().$project({CURRENCY: true}).$distinct();

​

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017/06/11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言部分
  • 正文部分
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档