两个月之和的SQL差异

时间:2014-05-14 00:49:42

标签: sql

我试图找出前几个月和当前年月之间的差异。一个例子是2013年1月的销售总额和2014年1月销售额的销售额差额。这样做是为了看看我们从去年开始做了多少。我有一个小组按月显示总销售额。我在定义如何找到两个月之间的差异方面遇到了麻烦。谢谢您的帮助。非常感谢。

Date      Sales
1/1/2013  100
1/12/2013 150
1/21/2013 90
1/4/2014  200
1/17/2014 50
1/20/2014 100

分组结果

Jan 2013
340

Jan 2014
350

差分

Jan 2014 - Jan 2013
   340   -   350    = 10

1 个答案:

答案 0 :(得分:0)

执行此操作的最佳方法取决于数据库。您需要做的第一件事是聚合数据。然后,简单的连接将获得您需要的数据。这是一种方法:

with ym as (
      select year(date) as yr, month(date) as mon,
             sum(sales) as sales
      from table t
      group by year(date), month(date)
     )
select ym.yr, ym.mon, ym.sales, ymprev.sales as prev_sales,
       (ym.sales - ymprev.sales) as diff
from ym join
     ym ymprev
     on ymprev.yr = ym.yr - 1 and ymprev.mon = ym.mon;