今天要给客户做一张报表,主要是反应当天的话务数量与前一天之间的对比情况,也就是说,假设表结构是这样的:
其中 增幅应该是 当前的记录跟上一天记录去做对比,这种情况在IREPORT中应该是可以实现的,但是ireport资料较少。
故从sql入手,目前想到的有两种方法:
1、拼两遍sql
然后再用相应的公式算出增幅百分比即可
日 期
呼入号码数
2015/12/26
10248
2015/12/27
9640
2015/12/28
9362
2015/12/29
9911
那么做出来的表应该是这样的:
日 期 | 呼入号码数 | 增幅 |
2015/12/26 | 10248 | -29.29% |
2015/12/27 | 9640 | -5.93% |
2015/12/28 | 9362 | -2.88% |
2015/12/29 | 9911 | 5.86% |
其中 增幅应该是 当前的记录跟上一天记录去做对比,这种情况在IREPORT中应该是可以实现的,但是ireport资料较少。
故从sql入手,目前想到的有两种方法:
1、拼两遍sql
select XX from xxx a,
select XX from xxx b
where a.日期=b.日期-1天
2、使用oracle lead、lag函数
select 日期,
2、使用oracle lead、lag函数
select 日期,
号码个数,
LAG(
号码个数) over(order by
日期) 上一天数量 from xxx where 1=1
select 日期,
号码个数,
lead(
号码个数
) over(order by
日期
) 下一天数量 from xxx where 1=1
然后再用相应的公式算出增幅百分比即可