SAP-ABAP的COLLECT用法

原贴地址:http://qiqeloveyou.blogbus.com/logs/28574615.html

 

版权声明 :转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://qiqeloveyou.blogbus.com/logs/28574615.html

 

Collect语句镶嵌在 select---endselect 之中使用 , 在 报表开发中经常用到 , 作用是根据 table 的 unique key, 把表中其他的字段进行自动的累加 , 一般用在对某些数据进行总 数统计的时候 .

举例如下:

data:begin of mytable,

keyfield like XXX,

fliedl1   like XXX,

field2    like XXX,

end of mytable.

Data: mytable_col like hashed table of mytable

   With unique key keyfield with headline.

 

select keyfield fliedl1 field2 from table_system

into (mytable- keyfield, mytable-fliedl1, mytable- field2).

Collect mytable into mytable_col.

Endselect.

 

这个例子的作用是以 keyfield 为主键 , 把 fliedl1 和 fliedl2 的 数据进行累加 , 计算属于每个 keyfield 的 fliedl1 和 fliedl1 的 总和 .

Collect 使 用有两个条件 :

<!--[if !supportLists]-->1.       <!--[endif]-->累 加时送入的表必须时 hashed table 或者 sorted table, 即必须拥有唯一的 key.

<!--[if !supportLists]-->2.       <!--[endif]-->除了 key 之 外的其他属性必须时数字型的 , 才能进行累加计算 .

当然 mytable 和 mytable_col. 的 表的类型必须完全一致 .

一般的报表在生成时都 需要对大量的数据进行计算 , 这时使用 collect 语 句的好处就是不用在把数据取到本地后再 loop 进行累加 , 降 低报表对系统的压力 .

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值