Collect语句的使用方法(转)

Collect语句镶嵌在select---endselect之中使用,在报表开发中经常用到,作用是根据tableunique 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为主键,fliedl1fliedl2的数据进行累加,计算属于每个keyfieldfliedl1fliedl1的总和.

Collect使用有两个条件:

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

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

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

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

come form: http://blog.csdn.net/nodreamer/archive/2007/02/25/1514272.aspx

从内部表中抽取唯一记录的方法测试

三种方法简单介绍:

方法一: 内部表循环赋值,使用COLLECT语句追加记录

方法二: 内部表循环赋值,使用AT NEW和APPEND语句追加记录

方法三: 整个内部表赋值,使用DELETE ADJACENT DUPLICATES语句删除重复记录.

http://abaper.blogbus.com/logs/2679647.html

[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/132884/viewspace-1004288/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/132884/viewspace-1004288/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值