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单元格上一单元格的销售量就可以了,我们来看一下集智报表是如何实现的。

数据集ds1SELECT DezaiCn_Sale.ID,DezaiCn_Sale.日期,DezaiCn_Sale.销售量 FROM DezaiCn_Sale WHERE DezaiCn_Sale.日期is not null

这里用到了集智报表非线性模型中的位移坐标,我们把D2格的表达式写成:= C2/C2[-1],如下图所示:



不用复杂的SQL计算,就能轻松的完成上期比的计算,由此可见,集智对于数据的统计功能可见一斑。