SQL将去年的数据制作成另一列

时间:2014-05-27 21:50:53

标签: sql

我的数据集如下:

 revenue    country date    
 100    US  3/13/2014
 200    US  3/14/2014
 300    CA  3/13/2014 
 150    US  3/13/2013
 200    CA  3/13/2013

如何运行查询以将去年同一天的收入计入另一列?

 revenue    country data    revenue_last_year
 100    US  3/13/2014   150
 200    US  3/14/2014   0 or null
 300    CA  3/13/2013   200

提前致谢!

2 个答案:

答案 0 :(得分:1)

实际上,您在同一数据集上加入了两个查询。让我们说你的桌子叫做CountryRevenue。

选择 A.revenue,A.country,A.date,B.revenue为revenue_last_year 从 (SELECT * FROM CountryRevenue,YEAR(date)= 2014)AS A. 内部联接 (SELECT * FROM Country Revenue WHERE YEAR(date)= 2013)AS B. 上 A.country = B.country

这样的事情应该做你想做的事。

答案 1 :(得分:1)

去年在给定日期的收入:

select revenue, country, date
  , (
    select revenue
    from revenue r2
    where r1.country=r2.country
      and r1.date = dateadd(yy,1,r2.date)
  ) as LastYearRevenue
from revenue r1

检查SQLFiddle