用量与去年相比

时间:2016-01-14 21:45:09

标签: sql date sqlite

我有一个包含两列的表 - 日期金额(使用情况)。我想将我的用法与去年的

进行比较

数据

Date        Amount
01-01-2015  23
02-01-2015  24
03-01-2015  19
04-01-2015  11
05-01-2015  5
06-01-2015  23
07-01-2015  21
08-01-2015  6
09-01-2015  26
10-01-2015  9
[...]
01-01-2016  30
02-01-2016  19
03-01-2016  5
04-01-2016  8
05-01-2016  15
06-01-2016  27
07-01-2016  19
08-01-2016  21
09-01-2016  24
10-01-2016  27
[until today's date]

sql语句应该返回结果到今天的日期,差异应该是一个运行总计 - 2016年一天的金额减去2015年同一天的金额加上之前的差额。假设今天是1月10日,结果将是:

Day         Diff
01-01-2016  7   (30-23)
02-01-2016  2   (19-24+7)
03-01-2016  -12 (5-19+2)
04-01-2016  -15 (8-11-12)
05-01-2016  -5  (and so on...)
06-01-2016  -1
07-01-2016  -3
08-01-2016  12
09-01-2016  10
10-01-2016  28

当数据全部在一个表格中时,我无法做到这一点......

由于

1 个答案:

答案 0 :(得分:2)

试试这个

SELECT t1.date Day,SUM(t2.Diff) FROM
amounts t1
INNER JOIN
(SELECT amounts.date Day, amounts.amount-prevamounts.amount Diff
FROM amounts inner join amounts prevamounts 
ON amounts.date=date(prevamounts.date,'+1 years')) t2
ON t2.Day<=t1.date
group by t1.date;

演示: http://sqlfiddle.com/#!7/9bd4c/41