对分组表进行数学运算

2024-02-21

我的问题不在于真正的编程语言。

我有一个 ABAP 语言练习,但该语言不是很重要。

无论如何,我有一张桌子:

我需要计算该职位的总成本(显然是在选择之后)。 然后,该表将按两个字段(MATNR 和 BUKRS)进行分组,因此我需要知道每个组的头寸总成本 MAX、总成本 MIN 和总成本 AVERAGE。

但是我需要一个简单的算法来解决这个问题(伪代码)。

我希望我说清楚了。


对于表聚合,我发现 LOOP 中的 AT 函数非常方便。

根据您需要的维度对字段进行排序,并按升序或降序对值进行排序。

此处字段的顺序非常重要,因为 AT 会查找指定字段及其左侧同一行中的所有字段中的更改。因此,您可以逐个处理组并将组聚合的结果附加到结果表中。

LOOP AT lt_itab ASSIGNING <ls_itab>.
  AT NEW bukrs. "at first entry of combination matnr, bukrs
    ls_agg-matnr = <ls_itab>-matnr.
    ls_agg-bukrs = <ls_itab>-bukrs.
  ENDAT.

  TRY.
    ADD <ls_itab>-amount TO lf_sum.
  CATCH cx_sy_arithmetic_overflow.
     lf_sum = 9999.
  ENDTRY.

  lf_count = lf_count + 1.
  IF <ls_itab>-amount > lf_max.
     lf_max = <ls_itab>-amount.
  ENDIF.

  AT END OF bukrs. "after last entry of combination matnr,bukrs
    ls_agg-avg = lf_sum / lf_count.
    ls_agg-max = lf_max.
    APPEND ls_agg TO lt_agged.
    CLEAR: ls_agg, lf_sum, lf_count, lf_max.
  ENDAT.
ENDLOOP.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

对分组表进行数学运算 的相关文章

  • 如果找不到指定的图像文件,显示默认图像的最佳方式?

    我有一个普通的电子商务应用程序 我将 ITEM IMAGE NAME 存储在数据库中 有时经理会拼错图像名称 为了避免 丢失图像 IE 中的红色 X 每次显示产品列表时 我都会检查服务器中是否有与该产品相关的图像 如果该文件不存在 我会将其
  • 与随机数生成算法相关的种子是什么?为什么经常使用计算机时间来创建该种子?

    我读到了seeds用于初始化随机数生成器 但似乎种子的随机性对于从生成器获得良好的随机性并不重要 所以我想了解什么是seed实际上 为什么这么称呼呢 最后为什么time在计算机系统中是用来生成这样的种子的 伪随机数生成器生成数字序列 它不是
  • 从关系数据库中“区分”对象

    我们的 win32 应用程序根据 MySQL 关系数据库中多个表中的数据组装对象 对于这样的对象 多个修订版本存储在数据库中 当存储某些内容的多个修订版本时 迟早您会问自己这样的问题 您是否可以想象两个修订版本之间的差异 所以我的问题是 比
  • Yegge 的原型模式示例如何处理实例变量?

    我喜欢史蒂夫 耶吉的原型模式示例 http steve yegge blogspot com 2008 10 universal design pattern html并决定快速制作一个概念验证示例 不过 我并没有真正考虑清楚 虽然它非常适
  • 查找两个大小为 n 的数组中第 n 大数的算法

    我有这个问题 给定两个大小为 n 的排序列表 存储在数组中 找到 O log n 计算并集中第 n 大元素的算法 两个列表 我可以看到这里可能有一个技巧 因为它需要第 n 个最大的元素 并且数组的大小也是 n 但我不知道它是什么 我在想我可
  • 如何发布/销售/推广半商业/开源项目? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我已经开发了一个 PHP 框架 总共花了大约 3 周的时间 但它已经准备好发布了 如果我选择这样做的话 在目前的经济形势下 我不能仅仅接受
  • 按日/月分组,并取 mongo 中当天/月评分的平均值

    我在 mongodb 中有这些数据 rating 4 ceatedAt ISODate 2016 08 08T15 32 41 262 0000 rating 3 createdAt ISODate 2016 08 08T15 32 41
  • 如何为所有语言创建字母数字正则表达式?

    我今天遇到了这个问题 此正则表达式仅匹配英语 a zA Z0 9 如果我需要支持这个世界上的任何语言 我应该编写什么正则表达式 如果您使用字符类简写和 Unicode 识别正则表达式引擎 您就可以做到这一点 这 wclass 匹配 单词字符
  • 承诺的反面是什么?

    承诺代表将来可能可用 或无法实现 的值 我正在寻找的是一种数据类型 它表示将来可能变得不可用的可用值 可能是由于错误 Promise a b TransitionFromTo
  • 有向无环图的人类可读文本表示

    一棵树有一堆人类和机器可读的文本表示 例如嵌套列表 以各种表示形式 例如 JSON 和 YAML 和 XML 与缩进相结合 它们使我们很容易想象得到的结构 但我没有看到任何具有相同水平可读性的东西有向无环图 https en wikiped
  • MySQL 中非空值的计数和分组

    我需要计算按特定 ID 分组的非空 我的意思是至少包含 1 个字符的字符串 行 例如 我的数据可能如下所示 form id mapping 1 value 1 1 1 value 2 2 2 NULL 3 value 3 我想计算每个表单的
  • R 如何按行值进行分组、拆分或子集

    这是上一个问题的延续R 如何按行值分组 分裂 https stackoverflow com questions 64602607 r how to group by row value split 输入数据帧的变化是 id str c x
  • LINQ GroupBy 匿名类型

    我想知道为什么 GroupBy 与匿名类型一起使用 List
  • 将 GROUP BY 与 FIRST_VALUE 和 LAST_VALUE 结合使用

    我正在处理一些当前以 1 分钟间隔存储的数据 如下所示 CREATE TABLE MinuteData Id INT MinuteBar DATETIME Open NUMERIC 12 6 High NUMERIC 12 6 Low NU
  • 如何编写 T-SQL 查询来为每个客户端选择前 1 条记录?

    我有一个简单的脚本 我试图获取每个客户端的最新记录 我如何在 TSQL 中执行此操作 这是我目前的代码 但是 这只是总共选择了一条记录 此记录显示所有客户的最新记录 而不是每个客户 请问我该如何重新表述 SELECT TOP 1 C Cli
  • 过渡到面向对象的ABAP?

    看来我们大多数 SAP 程序员都在使用旧版本的 ABAP 也就是面向对象之前的版本 我还注意到 面向对象的语言更加干净 更加现代 他们显然借此机会摆脱了不推荐使用的东西 由于该系统尚未推出 因此重新设计的时机宜早不宜迟 是否值得要求将新代码
  • 当前CLASS POOL中PUBLIC类的名称必须是“...”而不是“...”

    我正在尝试创建一个本地类 Z MY LOCAL CLASS 在全局类 Z MY GLOBAL CLASS 通过点击事务中的 本地定义 实现 se24 之后 我将另一个类的源代码从基于源代码的视图复制到单击 本地定义 按钮后显示的文本区域中
  • 是否有加权水库采样的算法? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 当数据流中的点具有相关权重时 是否有一种算法可以执行水库采样 Pavlos Efraimidis 和 Paul Spirakis 的算
  • sql server 按组排名

    问题看似简单 但我却无法理解 这是针对 sql 服务器的 what I have in a table What I need as a output cksum id cksum id 2162514679 204 2162514679
  • 将古吉拉特语文本插入 MySQL 表会产生垃圾字符和不可读的文本

    我有三个 MySQL 表 我正在向其中插入古吉拉特语内容 当我插入两个表时 它们插入得很好并且可读 但在一个表中 它显示垃圾字符 不可读的文本 我怎样才能解决这个问题 MySQL 有每个表的字符集设置 http dev mysql com

随机推荐

  • 替换for循环Python中的字符串元素

    我正在从文本文件中读取数据 因此每一行都是一个字符串列表 所有这些列表都在数据列表中 所以我的列表看起来像 data row1 row2 etc row1 str1 str2 etc 我正在尝试删除行列表中的字符串中出现的任何 或 符号 我
  • LZW解压算法

    我正在为必须实现 LZW 压缩 解压缩的作业编写一个程序 我为此使用以下算法 压缩 w NIL while read a character k if wk exists in the dictionary w wk else add wk
  • 如何将按钮字体设置为 Marlett

    我正在尝试将按钮的字体设置为系统的 Marlett 字体 然而 虽然我手动设置了font face 但使用了其他字体 此外 当我使用字体对话框为该按钮选择字体时 Marlett 未列出 为什么会这样呢 如何在 NET Windows 窗体控
  • 第一个列表滚动在聚合物中结束后,铁滚动阈值永远不会执行

    我已经使用以下方法完成了iron list and iron scroll threshold为了在聚合物中实现无限滚动 但问题是 loadMoreDatairon scroll threshold在聚合物中第一个列表滚动结束后永远不会执行
  • Symfony 使用哪个单元测试框架?

    Symfony 使用哪个单元测试框架 Lime 还是 PHPUnit 使用它们有什么优点和缺点 在我看来 以下是我想到的一些事情 PHPUnit is more integrated with other tools like for in
  • MonoFoldable 有什么损失吗?

    单折叠 https hackage haskell org package mono traversable 1 0 0 1 docs Data MonoTraversable html t MonoFoldable in the 单通行
  • Laravel 5 MethodNotAllowedHttpException PUT

    我正在尝试更新用户 但是当我点击提交按钮时 Laravel 抛出以下错误 RouteCollection gt methodNotAllowed array GET HEAD POST 在 RouteCollection php 第 206
  • 开玩笑嘲笑参考错误

    我正在尝试使用以下模拟 const mockLogger jest fn jest mock myLoggerFactory gt type gt mockLogger 但是mockLogger会抛出引用错误 我知道笑话试图保护我免于超出模
  • 使用 jquery 禁用提交按钮

    我想在单击表单中的提交按钮后禁用它 以限制用户一次又一次地单击它 我用 jquery 尝试了这个 form submit function var formId this id if formId formId input type sub
  • 通过 PhpStorm 中的 Docker 容器使用 xdebug

    我读过一些关于此的文章 但没有一个对我的案例有帮助 或者只是忽略了缺失的部分 我无法使用 Docker 容器让 xdebug 在 PhpStorm 上工作 Docker compose yml version 2 services web
  • LEFT JOIN ON Google BigQuery 中的最近日期

    我有两个表 都有时间戳和更多数据 Table A name timestamp a data 1 2018 01 01 11 10 00 a 2 2018 01 01 12 20 00 b 3 2018 01 01 13 30 00 c T
  • Objective C 中的友元类

    我正在将 cpp 代码移植到 Objective C 中 In cpp我们可以添加一个类friend class到另一个类并使用其所有公共函数和变量 我知道Objective C does not support friend class概
  • 将 *ngFor 用于带有嵌套数组的 JSON 对象

    我有一个 JSON 对象 它具有多个级别的嵌套对象以及嵌套的对象数组 我想知道如何使用 Angular2 和 ngFor 迭代对象并最终打印出列出的内容 第一个 ngFor 有效 但下一个 ngFor 给我错误提示Cannot read p
  • 在 SQLite3 中插入​​和返回自动身份

    当我向数据库中插入一行时 我试图找出获取最后一个 ID 的最佳方法 它是一个基本库 它将异常和程序状态数据记录到 SQLite 数据库中 使用System Data SQLite 该库可以从控制台应用程序 表单应用程序 网站 服务 单线程
  • 使用codeigniter按每个类别的降序获取三个记录

    我有两个类别 我想获取每个类别的三个记录 后来我找到了这个链接使用 Codeigniter 活动记录模式进行 UNION 查询 https stackoverflow com questions 2040655 union query wi
  • 将 spring-boot-starter-parent 升级到版本 2.6.6 后,Java Spring Boot java.lang.NoClassDefFoundError [关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我有一个 Spring Boot 应用程序 一直在使用 spring boot starter parent 版本 2
  • 如何从metrics-server获取Pod CPU和内存使用情况?

    我目前在 K8s 集群中安装并运行了指标服务器 利用 kubernetes python 库 我可以发出此请求来获取 pod 指标 from kubernetes import client api client client ApiCli
  • 没有默认构造函数?

    include
  • 如何防止 Visual Studio 在 Web 项目中“发布”XML 文档文件?

    Note 这个问题类似于如何防止在发布模式构建中复制 XML 文档文件 https stackoverflow com questions 3980958 how to prevent the copy of xml documentati
  • 对分组表进行数学运算

    我的问题不在于真正的编程语言 我有一个 ABAP 语言练习 但该语言不是很重要 无论如何 我有一张桌子 我需要计算该职位的总成本 显然是在选择之后 然后 该表将按两个字段 MATNR 和 BUKRS 进行分组 因此我需要知道每个组的头寸总成