sql运行总数学当前季度

时间:2015-02-23 16:55:09

标签: sql sqlite

我试图找出本季度的总数,当时显示的唯一数据是当年的总运行总数:

Id      Amount      Periods     Year        Type        Date
-------------------------------------------------------------
1       65          2           2014        G           4-1-12
2       75          3           2014        G           7-1-12
3       25          1           2014        G           1-1-12
4       60          1           2014        H           1-1-12
5       75          1           2014        Y           1-1-12
6       120         3           2014        I           7-1-12
7       30          1           2014        I           1-1-12
8       90          2           2014        I           4-1-12

在上面显示的数据中。 G和I类型的项目正在运行该期间的总计(以qtrs为单位)。如果我的查询返回第3期,是否有一种sql方式来获取qtr的数据?数学将涉及检索第3个时期的数据 - 第2个时期。

现在我的sql就像:

SELECT * FROM data WHERE Date='4-1-12';

在此查询中,它将返回第1行,这是2个句点的总计。我希望它只返回第二期的总数。我希望用SQLite来实现这一点。

任何帮助都将不胜感激。

非常感谢

1 个答案:

答案 0 :(得分:1)

您想要减去上一季度的累计总数:

SELECT Id,
       Year,
       Type,
       Date,
       Amount - IFNULL((SELECT Amount
                        FROM data AS previousQuarter
                        WHERE previousQuarter.Year = data.year
                          AND previousQuarter.Type = data.Type
                          AND previousQuarter.Periods = data.Periods - 1
                       ), 0) AS Amount
FROM data

IFNULL需要处理上一季度没有的季度。