SQL语句实现上期比统计实例
使用集智的客户可以通过位移坐标实现,上期比、同期比等数据的计算,但当其授权文件中没有位移坐标的功能点的时候,实现起来就比较困难了,通常建议客户在SQL中计算得出。
下面就是通过SQL语句计算出上期比的实例。
数据结构如下:
其中的数据为:
报表中的数据集如下所示:
select temp2.nian 年,temp2.yue 月,temp2.zonge1 销售量,temp3.zonge1/temp2.zonge1*100 上期比
from
(
select nian, yue ,sum(zonge) as zonge1
from
(
select year(日期) as nian,month(日期) as yue,销售量 as zonge
from dbo.DezaiCn_Sale
) temp1
group by nian,yue
) temp2 ,
(
select nian, yue ,sum(zonge) as zonge1
from
(
select year(日期) as nian,month(日期) as yue,销售量 as zonge
from dbo.DezaiCn_Sale
) temp1
group by nian,yue
) temp3
where temp2.nian = temp3.nian and temp2.yue = temp3.yue-1
我们在预览一下结果,看是否是我们想要的样式。
这个报表中,“比上期“这个指标的运算逻辑是:本月订单销售量/上月销售量。
从上图中可以看出,D2格的表达式最关键的在于如何表达出前一个月的销售量,该报表是根据年分组并按年、月进行排序,因此我们想得到上一期的销售量,只要能得到扩展后C2单元格上一单元格的销售量就可以了,我们来看一下集智报表是如何实现的。
数据集ds1:SELECT DezaiCn_Sale.ID,DezaiCn_Sale.日期,DezaiCn_Sale.销售量 FROM DezaiCn_Sale WHERE DezaiCn_Sale.日期is not null
这里用到了集智报表非线性模型中的位移坐标,我们把D2格的表达式写成:= C2/C2[-1],如下图所示:
不用复杂的SQL计算,就能轻松的完成上期比的计算,由此可见,集智对于数据的统计功能可见一斑。