- 论坛徽章:
- 0
|
也行,我把现在自己的代码贴一下,为了方便大家阅读,我尽量简化。工作日就是自然日。ec代码如下:
EXEC SQL select * from 原始表 where 1<>1 into temp 结果表;//创建结果表
for ( lDate=开始日期 ; lDate<结束日期-10 ; lDate++ ) //从开始日期到结束日期循环
{
EXEC SQL select unique * from 原始表
where date between :lDate and :lDate+10
and 其他搜索条件
into temp tmp_r; //选取出时间区间内某10天的所有符合条件的记录
EXEC SQL select sum(amt) as sumamt,acc
from tmp_r
group by acc
into temp tmp_r1; //把每个账号这段时间内的交易金额汇总
EXEC SQL insert into 结果表
select * from tmp_r
where acc in
(select acc from tmp_r1
where sumamt>=100000); //取出金额总数大于100000的记录放进结果表
EXEC SQL drop table tmp_r;
EXEC SQL drop table tmp_r1;
}
这样的缺点是,在结果表中就会存在很多重复的记录,比如有一个交易单笔金额超过100000,那么用这个方法就会在结果表中重复10次,在数据量大时这是很不划算的。
ikb有何高见?请指教,谢谢。 |
|