专门研究各种报表工具软件和BI商业智能分析工具

如何实现基于当前日期的历史数据对比可视化

在做数据分析时,每天查看数据时,需要对当前日期数据和历史同期数据进行数据可视化对比分析,以分析数据的变化情况。
例如:当前日期为2020年3月13日,需要分析上月当日或者去年当日数据和本期的对比,即要分析2020年2月13日和2020年3月13日的对比、2019年3月13日和2020年3月13日的对比、2020年3月12日和2020年3月13日的对比等同期或环期对比场景。
随着时间的推移,对应的对比周期会同步发生变化。

要点:使用自定义数据集实现基于当前日期的数据查询

主要思路:在数据库中获取当前日期,基于当前日期,使用自定义sql获取同期或环期数据作为数据集,创建图表。
添加自定义表的方法请参见帮助文档:https://help.grapecity.com.cn/pages/viewpage.action?pageId=30261202
本文中的语句以SqlServer为例。

1.和同期前一天的数据进行对比:例如今天是2020-03-13,即与前一天2020-03-12进行对比;
自定义数据集SQL写法:
select *,'本期' 周期 from 测试数据 where 日期=convert(varchar(10),GETDATE(),120)
union
select *,'上期' 周期 from 测试数据 where 日期=convert(varchar(10),GETDATE()-1,120)

效果图: 




2.和去年同一天数据进行对比:例如今天是2020-03-13,即与去年当天 2019-03-13进行对比。
自定义数据集SQL写法:
select *,'本期' 周期 from 测试数据 where 日期=convert(varchar(10),GETDATE(),120)
union
select *,'上期' 周期 from 测试数据 where 日期=convert(varchar(10),dateadd(YEAR,-1,GETDATE()),120)
效果图:


3.与上月同一天数据进行对比:例如今天是2020-03-13,即与上月2020-02-13进行对比。
select *,'本期' 周期 from 测试数据 where 日期=convert(varchar(10),GETDATE(),120)
union
select *,'本期' 周期 from 测试数据 where 日期=convert(varchar(10),dateadd(month,-1,GETDATE()),120)
效果图:


如果计算周期为年、季度、月、周等,与本文中日的实现方法类似。

posted @ 2020-08-14 14:43  智能报表工具知识园地  阅读(902)  评论(0编辑  收藏  举报