公众号: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. idea:spring initializr无web勾选,maven方式搭建springboot项目。jdk7创建springboot项目的版本不兼容问题。

    一.idea 使用spring initializr不选择web搭建springboot项目 1.file => new => project 2.直接next到finish结束. 3.完 ...

  2. P1081 [NOIP2012]开车旅行[倍增]

    P1081 开车旅行    题面较为啰嗦.大概概括:一个数列,只能从一个点向后走,两种方案:A.走到和自己差的绝对值次小的点B.走到和自己差的绝对值最小点:花费为此差绝对值:若干询问从规定点向后最多花 ...

  3. 我说CMMI之六:CMMI的评估--转载

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/dylanren/article/deta ...

  4. k8sCronJob控制器

    CronJob用于管理job控制器资源的运行时间,job控制器定义的作业任务在其控制器资源创建之后便会立即执行,但cronjob可以以类似于linux操作系统的周期性任务作业计划的方式控制其运行时间点 ...

  5. Spring mvc i18n国际化的简单demo

    在渲染视图的xml文件中,配置一个i18nBean 实现两个接口: SessionLocaleResolver --> 加载资源主题 ReloadableResourceBundleMessag ...

  6. 初识容器和Docker

    什么是Docker? Docker 是一个用于开发,交付和运行应用程序的开放平台.能够就应用程序和基础架构分开,从而可以快速的交付软件. 借助Docker可以和管理应用程序的方式来管理基础架构. 使用 ...

  7. 动软代码生成器生成model

    model <#@ template language="c#" HostSpecific="True" #> <#@ output exte ...

  8. 【leetcode】1273. Delete Tree Nodes

    题目如下: A tree rooted at node 0 is given as follows: The number of nodes is nodes; The value of the i- ...

  9. Linux 查看内存条数据和大小命令

    查看内存条数据和大小命令: sudo dmidecode | grep -A16 "Memory Device$" 需要root 权限.. [life@localhost mp3b ...

  10. 用CSS如何实现单行图片与文字垂直居中

    图片样式为 以下为引用的内容:.style img{vertical-align:middle;.....} 如果STYLE中有其它如INPUT或其它内联元素可写成 以下为引用的内容:.style i ...