如何方便的计算 GLT0 等表中的数据
在 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 等表中的数据相关推荐
- 人名和成绩一起排序_不同工作表中的数据表排序各异,如何用Excel数据透视表汇总?...
用数据透视表做分析的时候,有时源数据有好几张数据表,且分布在不同的地方.且因为维护源数据的人不同,数据表的行.列标题也未必固定不变. 那么问题来了,如果各个数据表的行标题排序各不相同,如何将它们合并到 ...
- xlsx表格怎么做汇总统计_Excel表格中如何快速汇总多个数据表中的数据
原标题:Excel表格中如何快速汇总多个数据表中的数据 在Excel工作表中,如果需要汇总报告多个单独单元格的结果,可以将这些单元格中的数据合并到一个主工作表中.这些工作表可以与主工作表在同一个工作簿 ...
- mysql提供什么语句用于删除表中的数据_MySQL提供【 】语句用于删除表中的数据...
MySQL提供[ ]语句用于删除表中的数据 答:暂无解析 出头教育: 当双活塞杆液压缸的缸体固定, 活塞杆与运动件固连时,其运动件的运动范 围等于液压缸有效行程的 答:三倍 可同时搜集若干调查单位资料 ...
- Azure数据仓库表中的数据经常使用的三种分布策略(hash、round_robin 或 replicated)简介
目录 (一)前言 (二)基础概念 1. Azure Synapse Analytics概念 2. Synapse SQL 体系结构组件 3. Azure 存储 4. 控制节点 5. 计算节点 6. 数 ...
- mysql杠杆加号什么意思_对tb_book表中的数据,按ID序号进行升序排列,查询语句是什么?_学小易找答案...
[单选题]修改数据库表结构用以下哪一项 ( ) [单选题]对于一个微小物理量,通常采用将其进行放大的方法实现测量,以下哪个不是物理实验方法? [单选题]扭摆实验中,为了测出金属匀质细杆绕质心对称轴的转 ...
- oracle显示多表数据,Oracle DB 使用连接显示多个表中的数据
在Oracle9i之前的发行版中,该联接语法与美国国家标准协会(ANSI) 的标准不同.与以前发行版中的Oracle 专用联接语法相比,符合SQ • 编写SELECT语句,以使用等值联接和非等值联接访 ...
- 本地MySQL数据库要访问远程MySQL数据库的表中的数据的实现
转自: http://blog.csdn.net/jenminzhang/article/details/9872647 1.实现基本思路:借助 MySQL的 federated 存储引擎实现 fed ...
- 表间数据复制--SELECT表中的数据插入到新的表中(ORACLE,MSSQL)
表间数据复制--SELECT表中的数据插入到新的表中 --在Oracle 9i中 CREATE TABLE scott.test AS (SELECT DISTINCT empno,ename,hir ...
- 《Oracle SQL疑难解析》——1.6 批量地从一个表中复制数据到另一个表
本节书摘来自异步社区出版社<Oracle SQL疑难解析>一书中的第1章,第1.6节,作者: [美]Grant Allen , Bob Bryla , Darl Kuhn,更多章节内容可以 ...
最新文章
- Windbg 分析 Dump File 简单演示(转)
- 第一次团队内部比赛总结
- 解决服务器上 w3wp.exe 和 sqlservr.exe 的内存占用率居高不下的方案
- CentOS6.0 yum php mcrypt 扩展安装问题
- 图像处理【代码合集】
- ubuntu vscode 配置字体_第五章 Ubuntu搭建ESP32开发环境(vscode)
- Oracle数据库DBA必备基本技能
- vscode的sftp插件同步失败no such file的问题
- php 图片上传 文件上传 大小 限制
- Sql Server快速入门
- 对称矩阵可以分解为对称矩阵的乘积 对称矩阵开根
- 百度谷歌雅虎三大搜索引擎本土功能大PK
- Latex论文用bibtex实现期刊/会议缩写
- 【脚本工具】QQ个人数据管理方法与脚本
- Step1我学习ros2的一些经历(从ubuntu安装到ros2中的位姿转换)
- 为什需要采用增广拉格朗日函数
- 汉字转拼音工具JPinyin的介绍和使用示例
- 云平台(用户、配额管理)
- java drm_Linux DRM那些事-RockPI DRM
- 2022P02014139杨智关于香农编码、哈夫曼编码和费诺编码的比较