如下图:如何在报表工具中表格中实现累计同比计算
当然可以选择通过SQL语法直接得到同比和环比数据进行计算,但是SQL的实现比较复杂,可能比较难理解。
本贴主要介绍通过Wyn Enterprise在表格中实现累计同比计算
重点:使用报表的丰富的表达式能力,这块使用的是 LOOKUP 表达式
实现思路,创建两个数据集,一个本期数据,另一个用来作为对比数据,根据累计同比概念获取到累计本期和累计上期的数据,然后进行计算相应的同比增长率
具体实现步骤:
1、创建报表,添加相关数据集(本期数据集和用来对比分析的数据集)。
数据集1:本期数据集,根据销售大区、销售省份、年、月来进行分组统计得到本期数据。
(select year(订购日期) as 年份,month(订购日期) as 月份,销售大区,销售省份,sum(订单金额) as 销售额 from 销售明细 where year(订购日期)=@年份 and month(订购日期)=@月份 group by 年份,月份,销售大区,销售省份 )
数据集2:对比数据集,根据销售大区、销售省份、年来进行分组统计得到累计数据。
(select year(订购日期) as 年份,销售大区,销售省份,sum(订单金额) as 销售额 from 销售明细 where month(订购日期)<=@月份 group by 年份,销售大区,销售省份)
2、添加表格,绑定本期数据。
在报表设计器页面添加表格,绑定数据集1的数据。
进行预览,查看本期当月数据。
注意:重点来了
3、利用LOOKUP表达式通过数据集2的对比数据计算出本期当月相对应的本年度截至当月累计数据,以及上年度截至当月累计数据。
本例子呢,计算的是两年的本期销售额,本期累计销售额以及上期累计销售额和累计同比增长率。
设计器中添加列,绑定1月-X月累计销售额、去年1月-X月累计销售额、累计同比增长率。
这些列的数据绑定选择为表达式通过LOOKUP函数来计算得到
1月-X月累计销售额:本期累计销售额。(=Lookup(Fields!年份.Value & "|" & Fields!销售大区.Value & "|" & Fields!销售省份.Value,Fields!年份.Value & "|" & Fields!销售大区.Value & "|" & Fields!销售省份.Value, Fields!销售额.Value, "数据集2"))
去年1月-X月累计销售额:上期累计销售额。(=Lookup(Fields!年份.Value-1 & "|" & Fields!销售大区.Value & "|" & Fields!销售省份.Value,Fields!年份.Value & "|" & Fields!销售大区.Value & "|" & Fields!销售省份.Value, Fields!销售额.Value, "数据集2"))
累计同比增长率:累计同比增长率(=(ReportItems!文本框39.Value-ReportItems!文本框36.Value)/ReportItems!文本框36.Value)
4、设计完成后进行预览和保存