动态报表 DQuery 添加指标最大最小功能

作者:ABAP技巧与实战 约 5 分钟阅读 更新日期:2025-03-02 1 年前更新 标签:ABAP, 开发

原创 无峰 [ ABAP 技巧与实战 ](javascript:void\(0\);)

前言

动态报表D-Query 是一个用于取代标准QUERY的程序.使用动态报表无需写代码,非开发人员也可生成专业的报表程序.

> 详见动态报表简介 无峰,公众号:ABAP 技巧与实战 [ 动态报表D-Query简介

> ](http://mp.weixin.qq.com/s?__biz=Mzg4MjA1MjE4NQ==&mid=2247486429&idx=1&sn=8cbab08040255baa4c7495e6e106230d&chksm=cf5dd6ebf82a5ffdf6cd2cca5ef3b3a298dcb7e3aac2b4cae5073af9c6720bf57b5544c57a49#rd)

**本文主要介绍动态报表的指标功能**

**

**

_指标一般指报表中等数量/金额字段_ **

**

常见的SQL统计

常见的数据库支持如下几种集合功能

• AVG 平均值

• MAX 最大值

• MIN 最小值

• SUM 请求

• COUNT 条目数

下图是ABAP SQL语法中支持的集合函数

动态报表 DQuery 添加指标最大最小功能 - 封面图
动态报表 DQuery 添加指标最大最小功能 - 封面图

动态报表支持的集合

动态报表根据数据的特点, 对求和处理补充了取绝对值,取反等附加处理.

以便更好的适应SAP表的特性.(比如退货订单数量也是正数,通过退货标记识别,统计时最好作取反后统计处理)

> 详见链接 无峰,公众号:ABAP 技巧与实战 [ 动态报表D-Query-新增数量金额字段

> ](http://mp.weixin.qq.com/s?__biz=Mzg4MjA1MjE4NQ==&mid=2247484535&idx=1&sn=32cf7e1f1e9bc56e25fa9b0c8c47ae76&chksm=cf5dd941f82a5057b40db559e2c210cc0868f5eabc9f60f3632a644c64de8aa54b4cc798c3bd#rd)

• A 取绝对值处理(SUM)

• B 取反处理(SUM)

• C 取绝对值后再取反(SUM)

• 空 无关(SUM)

• D 获取最大(MAX)

• E 获取最小(MIN)

• F 获取平均值(AVG)

动态报表 DQuery 添加指标最大最小功能 - 封面图
动态报表 DQuery 添加指标最大最小功能 - 封面图

MIN/MAX/AVG适用场景示例

最近尝试通过ZDQ实现一个计划协议报表,该报表有一列天数(计划交货日期-当前日期).天数这个字段可以两种方式实现

• 动态报表中新增字段的复杂SQL表达式

• CDS视图中获取该字段

图示是第二种解决办法,

> 第一种办法详见链接 无峰,公众号:ABAP 技巧与实战 [ 动态报表D-Query 新增计算字段

> ](http://mp.weixin.qq.com/s?__biz=Mzg4MjA1MjE4NQ==&mid=2247485984&idx=1&sn=f87dfcd7d33021df24e7f2e637fa32b5&chksm=cf5dd716f82a5e003e5f679586db5702593ed7479d068c1666e6b94056aa7525a926842a00bd#rd)

动态报表 DQuery 添加指标最大最小功能 - 封面图
动态报表 DQuery 添加指标最大最小功能 - 封面图

后续在动态报表中发现, 天数参与汇总没有任何业务含义. 只有最小/最大天数才有一定的业务含义(并且依赖于统计维度).

因此考虑给动态报表的指标字段添加了SQL中常用的AVG/MIN/MAX 方式. 这样对于天数类的字段,可以适用这三种集合方式来表达特定的业务含义

比如这个未清天数: 计划交货日期-当前日期(9999表示已清,负数表示计划交货日期在过去),这样获取的最小天数就表达了未清条目的最早天数.

动态报表 DQuery 添加指标最大最小功能 - 封面图
动态报表 DQuery 添加指标最大最小功能 - 封面图

总结

大部分的指标(数量/金额等通过数字类型定义的字段)适用于SUM求和,可以获取一个合计数量或金额.方便从整体查看数据.

但是个别字段,比如单价/天数等字段, 汇总没有具体的业务含义, 在统计时,可以考虑使用MIN/MAX/AVG获取一个相对有价值的集合值呈现出来.

** THE **

** END **

**约定**

如果你对这篇文章感兴趣,请帮忙点赞,在看,分享.

( **如果你真的喜欢这篇文章,请记得回来打个赏,作为支持我继续下去的动力,这是一个正反馈过程.

越多的人打赏,作者越有动力分享,读者就能享受更多的福利.毕竟打赏的金额富不了我,穷不了你,却能支持这个公众号长久发文.** )

动态报表 DQuery 添加指标最大最小功能 - 封面图
动态报表 DQuery 添加指标最大最小功能 - 封面图

**公众号 : syjf1976_abap**

**ABAP开发技巧**

**微信号 : 392077**

请微信联系管理员

syjf1976

sharry_xlp

Yannick_Duan

申请进入公众号讨论群提问或者参与话题讨论

ABAP技巧与实战

关于作者:ABAP技巧与实战

企业信息化与 SAP 技术顾问,长期专注 SAP ABAP、FI/CO、MM、SD 等模块的技术分享与实战经验总结。查看更多介绍

来源说明:本文内容由「动态报表DQuery添加指标最大最小功能.md」整理生成,仅用于内部技术分享与学习交流。