关于内表数据汇总的一些算法
2014-01-15 16:13
316 查看
1.把某个字段相同行的数值型数据字段汇总
如:
初始数据
处理后数据
其中:fld1,fld2为字符型,fld3为数值型。
要求:
现在我们的要求是:把fld1相同的行的FLD3汇总到最前面那行(如果要汇总到最后那行,可以为itab一个字段设fld4赋值1,2,3,。。然后sort itab by fld1 descending fld4 discending.再做下面的运算),
并把多余的行删除。
实际情况:(这是相当于FLD1是父结点,FLD2是子结点,FLD3为数值)现在的要求就是求父结点的值(为所有子结点的值之和)
假设数据已经存在内表ITAB(带表头)。
最简单&效率应该也是最快的(个人认为,有更好方法的童鞋欢迎交流)
View Code
用MODIFY的效率应该更好(可以用transporting限制),不过数据量不大的话就看个人喜好了。
如:
初始数据
FLD1 | FLD2 | FLD3 |
a | a | 1 |
a | b | 2 |
b | a | 3 |
FLD1 | FLD2 | FLD3 |
a | a | 3 |
b | a | 3 |
要求:
现在我们的要求是:把fld1相同的行的FLD3汇总到最前面那行(如果要汇总到最后那行,可以为itab一个字段设fld4赋值1,2,3,。。然后sort itab by fld1 descending fld4 discending.再做下面的运算),
并把多余的行删除。
实际情况:(这是相当于FLD1是父结点,FLD2是子结点,FLD3为数值)现在的要求就是求父结点的值(为所有子结点的值之和)
假设数据已经存在内表ITAB(带表头)。
最简单&效率应该也是最快的(个人认为,有更好方法的童鞋欢迎交流)
REPORT ydemo_rick_a. DATA:BEGIN OF itab OCCURS 0, fld1, fld2, fld3 TYPE i, END OF itab. DATA wtab LIKE itab. DATA outtab LIKE TABLE OF itab WITH HEADER LINE. itab-fld1 = 'a'. itab-fld2 = 'a'. itab-fld3 = 1. APPEND itab. itab-fld1 = 'a'. itab-fld2 = 'b'. itab-fld3 = 2. APPEND itab. itab-fld1 = 'b'. itab-fld2 = 'a'. itab-fld3 = 3. APPEND itab. LOOP AT itab. WRITE: itab-fld1,itab-fld2,itab-fld3, / . ENDLOOP. ULINE. LOOP AT itab. ON CHANGE OF itab-fld1. wtab = itab. ELSE. **MOTHOD 1 wtab-fld3 = itab-fld3. DELETE itab. COLLECT wtab INTO itab. **MOTHOD 2 * ADD itab-fld3 TO wtab-fld3. * DELETE itab. * MODIFY TABLE itab FROM wtab TRANSPORTING fld3. ***用MODIFY的效率应该更好(可以用transporting限制)不过数据量不大的话就看个人喜好了。 ENDON. ENDLOOP. ****下面为一种笨方法 *LOOP AT itab. * ON CHANGE OF itab-fld1. * APPEND itab TO outtab. * outtab = itab. "记下汇总行 * ELSE. * outtab-fld3 = itab-fld3. * COLLECT outtab. * ENDON. *ENDLOOP. LOOP AT itab. WRITE: itab-fld1,itab-fld2,itab-fld3, / . ENDLOOP.
View Code
用MODIFY的效率应该更好(可以用transporting限制),不过数据量不大的话就看个人喜好了。
相关文章推荐
- 关于数据降维的一些经典算法
- 关于最近做的一些有关 tarjan 类型的题目以及解析汇总(同时包括了点2-SAT、topo之类的算法)
- computer vision:algorithm and application计算机视觉算法与应用 这本书中附录里关于计算机视觉的一些测试数据集和源码站点
- 关于DEM相关算法设计——DEM的数据设计
- 关于json文本数据的一些使用方法
- 关于自由流功能开发过程中前端的一些问题汇总
- 一些关于数据分析的言论
- 关于数据挖掘(协同过滤、关联推荐、聚类分类)一些资料
- 关于本博客数据仓库方面的原创文章汇总
- 关于oracle数据一些基本常识
- 关于树分块算法的一些研究
- 关于Hive中的复杂数据类型Array,Map,Structs的一些使用案例
- 关于图ADT的一些算法——最小生成树算法(普利姆/Prim算法)
- 数据挖掘中的经典算法(一)汇总--谁说做系统的就不能研究数据挖掘?
- 数据结构中关于树的一些基本概念--随时更新 推荐
- 链表相关的算法题大汇总 — 数据结构之链表奇思妙想
- 一些在开发中关于Maven使用时遇到的问题的汇总
- 【数据结构与算法】 一些知识点零零总总(引用网络知识点节选重组)
- 关于树的一些算法操作包含树的非递归遍历(c源代码)
- 解决一条高难度的,关于时间段 数据汇总问题