我有一张类似
的表格account | date | value 1.11 | 2014-03-31 | 10 1.11 | 2014-06-30 | 20 1.11 | 2014-09-30 | 30 1.11 | 2014-12-31 | 100 1.21 | 2014-03-31 | 15 1.21 | 2014-06-30 | 20 1.21 | 2014-09-30 | 35 1.21 | 2014-12-31 | 90 1.11 | 2015-03-31 | 10 1.11 | 2015-06-30 | 20 1.11 | 2015-09-30 | 30 1.11 | 2015-12-31 | 100
xxxx-12-31中的值列是年总数。我想获得一个看起来像
的表格account | date | value 1.11 | 2014-03-31 | 10 1.11 | 2014-06-30 | 20 1.11 | 2014-09-30 | 30 1.11 | 2014-12-31 | 40 1.21 | 2014-03-31 | 15 1.21 | 2014-06-30 | 20 1.21 | 2014-09-30 | 35 1.21 | 2014-12-31 | 20 1.11 | 2015-03-31 | 10 1.11 | 2015-06-30 | 20 1.11 | 2015-09-30 | 30 1.11 | 2015-12-31 | 40
xxxx-12-31的行现在有季度数据。顺便说一下,如何才能获得仅适用于2014年第四季度的数据?,比如
1.11 | 2014-12-31 | 40 1.21 | 2014-12-31 | 20
答案 0 :(得分:1)
当日期以-12-31
结尾时,减去同一年中其他值的总和:
SELECT account
date,
CASE WHEN date NOT LIKE '%-12-31'
THEN value
ELSE value - (SELECT SUM(value)
FROM MyTable AS T2
WHERE strftime('%Y', T2.date) = strftime('%Y', MyTable.date)
AND T2.date < MyTable.date)
END AS value
FROM MyTable;