在 ABAP 的 GLT0、FAGLFLEXT 等余额表中,用诸如 TSL01、TSL02 …… TSL16 等字段记录了 16 个期间的发生额,在对某个期间取当年累计的时候,如果用其它语言,一般需要创建一个 CASE ... WHEN ... ENDCASE 结构,按输入的期间值来累加,代码量比较大。不过在 ABAP 中就不必那么麻烦了,SAP 提供了一个方便的语法来完成这类计算。代码如下:

Code

  PARAMETERS: prpmax LIKE GLT0-RPMAX.

  DATA: GLT0VARY LIKE GLT0-TSL01.

  SUMME = SUMME + GLT0-TSLVT.  DO prpmax TIMES VARYING GLT0VARY FROM GLT0-TSL01 NEXT GLT0-TSL02.    SUMME = SUMME + GLT0VARY.  ENDDO. 

其中的关键在于 DO ... VARYING ... FROM ... NEXT 这个语法结构。其中的 prpmax 代表循环次数,也就是输入的区间,GLT0VARY 代表存储获得值的临时变量,FROM 后的 GLT0-TSL01 是循环的开始位置,GLT0-TSL02 是循环的第二个位置,从这两个字段的位置,就能获得每次取值的内存偏移。这样,DO 循环的过程就是,首先取 GLT0-TSL01 的值,放到 GLT0VARY 中,然后执行 SUMME 的累加;再根据 prpmax 的值循环指定次数,每次都按 GLT0-TSL01 的长度取相应的内存片段,放到 GLT0VARY 中,执行累加。因此,在这样的循环里,需要累加的字段必须连续且长度相同。下图表示了它的内存使用情况:

          --循环开始时从这个位置读取
          |     --第二次循环时从这个位置读取
          |     |     --....
          |     |     |   --最多循环 16 次,否则会读到其它内存位置,导致错误
          V     V     V   V
|---|-----|-----|-----|---|-----|---|
|...|TSLVT|TSL01|TSL02|...|TSL16|...|
|-----------------------------------|

转载于:https://www.cnblogs.com/qiangsheng/archive/2008/10/28/1320927.html

如何方便的计算 GLT0 等表中的数据相关推荐

  1. 人名和成绩一起排序_不同工作表中的数据表排序各异,如何用Excel数据透视表汇总?...

    用数据透视表做分析的时候,有时源数据有好几张数据表,且分布在不同的地方.且因为维护源数据的人不同,数据表的行.列标题也未必固定不变. 那么问题来了,如果各个数据表的行标题排序各不相同,如何将它们合并到 ...

  2. xlsx表格怎么做汇总统计_Excel表格中如何快速汇总多个数据表中的数据

    原标题:Excel表格中如何快速汇总多个数据表中的数据 在Excel工作表中,如果需要汇总报告多个单独单元格的结果,可以将这些单元格中的数据合并到一个主工作表中.这些工作表可以与主工作表在同一个工作簿 ...

  3. mysql提供什么语句用于删除表中的数据_MySQL提供【 】语句用于删除表中的数据...

    MySQL提供[ ]语句用于删除表中的数据 答:暂无解析 出头教育: 当双活塞杆液压缸的缸体固定, 活塞杆与运动件固连时,其运动件的运动范 围等于液压缸有效行程的 答:三倍 可同时搜集若干调查单位资料 ...

  4. Azure数据仓库表中的数据经常使用的三种分布策略(hash、round_robin 或 replicated)简介

    目录 (一)前言 (二)基础概念 1. Azure Synapse Analytics概念 2. Synapse SQL 体系结构组件 3. Azure 存储 4. 控制节点 5. 计算节点 6. 数 ...

  5. mysql杠杆加号什么意思_对tb_book表中的数据,按ID序号进行升序排列,查询语句是什么?_学小易找答案...

    [单选题]修改数据库表结构用以下哪一项 ( ) [单选题]对于一个微小物理量,通常采用将其进行放大的方法实现测量,以下哪个不是物理实验方法? [单选题]扭摆实验中,为了测出金属匀质细杆绕质心对称轴的转 ...

  6. oracle显示多表数据,Oracle DB 使用连接显示多个表中的数据

    在Oracle9i之前的发行版中,该联接语法与美国国家标准协会(ANSI) 的标准不同.与以前发行版中的Oracle 专用联接语法相比,符合SQ • 编写SELECT语句,以使用等值联接和非等值联接访 ...

  7. 本地MySQL数据库要访问远程MySQL数据库的表中的数据的实现

    转自: http://blog.csdn.net/jenminzhang/article/details/9872647 1.实现基本思路:借助 MySQL的 federated 存储引擎实现 fed ...

  8. 表间数据复制--SELECT表中的数据插入到新的表中(ORACLE,MSSQL)

    表间数据复制--SELECT表中的数据插入到新的表中 --在Oracle 9i中 CREATE TABLE scott.test AS (SELECT DISTINCT empno,ename,hir ...

  9. 《Oracle SQL疑难解析》——1.6 批量地从一个表中复制数据到另一个表

    本节书摘来自异步社区出版社<Oracle SQL疑难解析>一书中的第1章,第1.6节,作者: [美]Grant Allen , Bob Bryla , Darl Kuhn,更多章节内容可以 ...

最新文章

  1. Windbg 分析 Dump File 简单演示(转)
  2. 第一次团队内部比赛总结
  3. 解决服务器上 w3wp.exe 和 sqlservr.exe 的内存占用率居高不下的方案
  4. CentOS6.0 yum php mcrypt 扩展安装问题
  5. 图像处理【代码合集】
  6. ubuntu vscode 配置字体_第五章 Ubuntu搭建ESP32开发环境(vscode)
  7. Oracle数据库DBA必备基本技能
  8. vscode的sftp插件同步失败no such file的问题
  9. php 图片上传 文件上传 大小 限制
  10. Sql Server快速入门
  11. 对称矩阵可以分解为对称矩阵的乘积 对称矩阵开根
  12. 百度谷歌雅虎三大搜索引擎本土功能大PK
  13. Latex论文用bibtex实现期刊/会议缩写
  14. 【脚本工具】QQ个人数据管理方法与脚本
  15. Step1我学习ros2的一些经历(从ubuntu安装到ros2中的位姿转换)
  16. 为什需要采用增广拉格朗日函数
  17. 汉字转拼音工具JPinyin的介绍和使用示例
  18. 云平台(用户、配额管理)
  19. java drm_Linux DRM那些事-RockPI DRM
  20. 2022P02014139杨智关于香农编码、哈夫曼编码和费诺编码的比较

热门文章

  1. iPhone手机美化篇--字体更改及字体颜色修改
  2. 一种RK3399+MIPI+FPGA的高速工业相机的设计方案(三)
  3. python爬虫---酷安(安卓app的聚集地)
  4. WINE 使用及其调试
  5. 一文详解4D Radar成像原理及其应用优势
  6. Linux安装flashplayer
  7. 神秘的“阿里星”是怎样一群年轻人? 1
  8. 比达应用商店报告:BT3用户多 豌豆荚PP助手活跃高
  9. n76e003引脚图_N76E003学习之路(二)
  10. C语言学习笔记(一)