人生倒计时
- 今日已经过去小时
- 这周已经过去天
- 本月已经过去天
- 今年已经过去个月
在何裕国际货运管理系统的大数据图表中,会按月展示收入、支出、利润图表,供管理层决策参考,并实时计算同比、环比增减比例。同比算法很好理解,但环比算法确实需要琢磨。
年同比
同比计算公式:
同比例=(本期-同期)÷|同期|×100%
同比比较是以年为单位,比如今年第n个月(当期数)和去年第n个月(同期数)的比较。
示例:
比如某货代公司去年3月利润100万,今年3月利润150万。同比增长多少?
同比增长率= (150-100) ÷| 100 | = 50%
注意这个绝对值。这是至关重要的。如果不加在代码里,当利润为负的时候,结果会很有意思。
月环比
环比计算公式:
环比=(本期数-上期数)÷|上期数|×100%
看一下环比的英文写法,大概可以理解为环比是以月为维度的。
但是我们在开发的时候,遇到了一个问题(可能我们想多了,但是代码总是要写清楚的):如何定义上期数?我们讨论了两种不同的方案:
例如:
例如,某货运代理公司今年的利润如下:
月
利润
一月
一百万
二月
一百五十万
三月
800,000
四月
两百万
根据计算公式,我们可以很容易地计算出环比:
二月份比一月份高:(150-100) ÷| 100 | = 50%
同理,3月份比2月份减少了46.67%。4月较3月增长150.00%。
但在系统的实际使用中,可以选择多个月份。当选取的月份是3月和4月,总利润是280万,问题就出现了。最后一个时期是什么?(280-?)÷|?|=?%
选项1:
上期人数= 100+150 = 250万,即3月+4月的环比(1月+2月)增长= (280-250) ÷| 250 | = 12%。这个方案比较简单理解,相邻期对比,但总感觉这个和逐月不太一致,还会有下一个。
选项2:
上期人数= 150+80 = 230万,即3月+4月的环比(2月+3月)增长=(280-230)÷|230|=21.74%。这个理解起来有点混乱,但似乎解释了“月环比”这个术语,即增长是按月计算的。
declare @start_date date --开始时间declare @end_date date --结束时间dateadd(month,-1, @Start_date) –环比开始时间dateadd(month,-1,@End_date) –环比结束时间
选择哪个方案?