SQLITE每月使用SUM查询GROUP BY

时间:2012-06-29 04:51:19

标签: android sql database sqlite

我一直坚持这个问题(Android SQLITE)。我有2列 - 日期和金额。日期以YYYYMMDD格式存储。

DATE AMOUNT

20120521 ------- 50
20120506个------- 40
20120311个------- 30
20120202个------- 20
20120125 ------- 10

我需要的是一个SQL查询(Android SQLITE),它将输出两列 - 月份和累计总数,直到那个月。如果一个月没有任何交易,它仍然应该评估累积总量。

所以我需要的输出(注意4月没有交易)

月累计总数

可能------- 150
APR ------- 60个
MAR ------- 60个
FEB ------- 30
JAN ------- 10

3 个答案:

答案 0 :(得分:2)

应该有效:

SELECT  strftime('%m', date), SUM(Amount)
FROM    myTable
GROUP BY strftime('%m', date)

对不起,我忘了你问题的这一部分“..如果一个月没有任何交易,它仍然应该评估累积总量。”

解决方案:简单的解决方案是在表格中包含所有月份的DUMMY条目。

答案 1 :(得分:0)

很难,因为简单的方法是编写一个存储过程来执行此操作,但sqlite不支持。不过要看看这个 - 也许这种方式可能有用 Android - easy/efficient way to maintain a "cumulative sum" for a SQLite column 你也可以尝试在android端上进行累积添加

答案 2 :(得分:-1)

你不能像这样做。您可以通过以下两种方式完成此任务:

  1. 按月分组,然后在Android端汇总并添加缺少的月份。
  2. 尝试使用商店程序。 (对于你的情况,我对sql lite并不十分肯定。)阅读this
  3. 所以我会选择第一个选项。