在做数据分析时,每天查看数据时,需要对当前日期数据和历史同期数据进行数据可视化对比分析,以分析数据的变化情况。
例如:当前日期为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)
效果图:
如果计算周期为年、季度、月、周等,与本文中日的实现方法类似。