报表知识库
我要提问

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计算,就能轻松的完成上期比的计算,由此可见,润乾对于数据的统计功能可见一斑。