公众号:SAP Technical
本文作者:matinal
 

前言部分

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

正文部分

接上一篇,继续

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


var qSelectedOrders =
qOrderAndItemTitles.$where(soHeader.items.NETAMOUNT.
$div(soHeader.NETAMOUNT).$gt(0.5)) ​

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

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

使用$ matching()方法,可以使用$ find()和$ findAll()方法的类JSON格式的语法来指定条件表达式。 以下代码示例显示了如何进一步优化结果集返回的选择,例如,仅接受欧元货币和数量大于2的那些数据。


qSelectedOrders = qSelectedOrders.$matching({
items: {
CURRENCY: 'EUR',
QUANTITY: {
$gt:
}
}
}); ​

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

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


qSelectedOrders = qSelectedOrders.$addFields({
"DaysAgo": soHeader.items.DELIVERYDATE.$prefixOp("DAYS_BETWEEN", new
Date())
}); ​

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

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


var qAverageQuantity = soItem.$query().$limit().$aggregate({
SALESORDERID: true,
PRODUCTID: true
}).$addFields({
averageQuantity: soItem.QUANTITY.$avg()
}); ​

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


var qAverageQuantity = soItem.$query().$limit().$aggregate({
SALESORDERID: false,
PRODUCTID: true
}).$addFields({
averageQuantity: soItem.QUANTITY.$avg()
}); ​

11、指定结果集的顺序。

要在结果集中指定顺序,可以使用$ order()方法,其中包括多个订单条件作为参数。 每个订单标准包含一个属性“by”和一个定义所需顺序的表达式。 可选地,每个标准可以包含标记$ desc以要求降序和$ nullsLast标志。 以下示例使用两个标准来首先按照标题中的净值降序排列结果集,然后按项目净值的顺序显示结果集。


qSelectedOrders = qSelectedOrders.$order({$by: soHeader.NETAMOUNT,
$desc:true},
{$by: soHeader.items.NETAMOUNT}); ​

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

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


var qAllCurrencies = soHeader.$query().$project({CURRENCY: true}).$distinct(); ​

到此结束关于SAP HANA XS使用Data Services查询CDS实体的使用讲解。

【HANA系列】【第八篇】SAP HANA XS使用Data Services查询CDS实体【二】的更多相关文章

  1. 【HANA系列】【第七篇】SAP HANA XS使用Data Services查询CDS实体【一】

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列][第七篇]SAP HANA XS ...

  2. 【HANA系列】SAP HANA XS使用Data Services查询CDS实体【二】

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP HANA XS使用Dat ...

  3. 【HANA系列】SAP HANA XS使用Data Services查询CDS实体【一】

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP HANA XS使用Dat ...

  4. 【公众号系列】超详细SAP HANA JOB全解析

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[公众号系列]超详细SAP HANA JOB全解 ...

  5. 如何在云端部署SAP HANA实战, Azure 上的 SAP HANA(大型实例)概述和体系结构

    什么是 Azure 上的 SAP HANA(大型实例)? Azure 上的 SAP HANA(大型实例)是一种针对 Azure 的独特解决方案. 除了提供 Azure 虚拟机以用于部署和运行 SAP ...

  6. SAP HANA开发中常见问题- 基于SAP HANA平台的多团队产品研发

    大家都知道SAP HANA项目打包成Delivery Unit(缩写为DU).依照"官方"的开发模式,特别是整个团队仅仅使用一个HANA Instance进行项目开发,因为HANA ...

  7. spring boot系列(五)spring boot 配置spring data jpa (查询方法)

    接着上面spring boot系列(四)spring boot 配置spring data jpa 保存修改方法继续做查询的测试: 1 创建UserInfo实体类,代码和https://www.cnb ...

  8. Java系列--第八篇 基于Maven的SSME之定时邮件发送

    关于ssme这个我的小示例项目,想做到麻雀虽小,五脏俱全,看到很多一些web都有定时发送邮件的功能,想我ssme也加入一下这种功能,经查询相关文档,发现spring本身自带了一个调度器quartz,下 ...

  9. javascript运动系列第八篇——碰壁运动

    × 目录 [1]匀速碰壁 [2]自由落体 [3]投掷碰壁[4]拖拽碰壁 前面的话 碰撞运动可能是运动系列里面比较复杂的运动了.碰撞可以分为碰壁和互碰两种形式,而碰撞前后的运动形式也可以分为变速和匀速两 ...

随机推荐

  1. UVA - 12538 Version Controlled IDE (可持久化treap)

    紫薯例题 #include<bits/stdc++.h> using namespace std; typedef long long ll; ,inf=0x3f3f3f3f; ],ch[ ...

  2. GitHub : Hello World

    这个写的太好啦,让我也没啥可以写的啦:http://www.open-open.com/lib/view/open1454507333214.html

  3. DevExpress ASP.NET Core v19.1版本亮点:Pivot Grid控件等

    行业领先的.NET界面控件DevExpress 发布了v19.1版本,本文将以系列文章的方式为大家介绍DevExpress ASP.NET Core Controls v19.1中新增的一些控件及增强 ...

  4. php的异步非阻塞swoole模块使用(一)实现简易tcp服务器--客户端

    //实例化一个swoole客户端 $swclient = new swoole_client(SWOOLE_SOCK_TCP); //建立连接---如果连接无效则退出 )){ echo "连 ...

  5. 对React的研究-------------引用

    DOM 的全称是 Document Object Model (文档对象模型) 响应式 UI const ThinkerWithHat = ({ hat }) => (  <div> ...

  6. luoguP1636 Einstein学画画 x

    P1636 Einstein学画画 题目描述 Einstein学起了画画, 此人比较懒--,他希望用最少的笔画画出一张画... 给定一个无向图,包含n 个顶点(编号1~n),m 条边,求最少用多少笔可 ...

  7. 初始化spark

    初始化SparkContext 一.初始化sparkimport org.apache.spark.SparkConf;import org.apache.spark.api.java.JavaSpa ...

  8. FLASH和EEPROM的区别

    FLASH和EEPROM的最大区别是FLASH按扇区操作,EEPROM则按字节操作,二者寻址方法不同,存储单元的结构也不同,FLASH的电路结构较简单,同样容量占芯片面积较小,成本自然比EEPROM低 ...

  9. Mongo Cursor

    简介 在使用 Java 对数据库进行连接时,都会获取到一个 cursor ,cursor 实际指到的是我们查询数据库的query,而并不是 query 查询到的数据集. 此次在使用 mongo 的 c ...

  10. [CSP-S模拟测试]:城市游戏(图论+DP)

    题目传送门(内部题109) 输入格式 第一行,两个整数$n,m$. 接下来$m$行,每行三个整数$u,v,l$,描述了一条道路连接的两个路口的编号以及道路的长度. 输出格式 输出一行一个整数,为所求的 ...