1

我已经被这个问题困扰了一段时间(Android SQLITE)。我有 2 列 - 日期和金额。日期以 YYYYMMDD 格式存储。

日期金额

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

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

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

月累计-总计

5月-------150
APR-------60
MAR-------60
FEB-------30
JAN--------10

4

3 回答 3

2

它应该工作:

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

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

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

于 2012-06-29T06:48:32.120 回答
0

困难,因为简单的方法是编写一个存储过程来完成它,但在 sqlite 中不受支持。但是看看这个 - 也许这种方式可能对 Android 有用 - 为 SQLite 列维护“累积和”的简单/有效方法 您也可以尝试在 android 端进行累积加法

于 2012-06-29T06:22:34.883 回答
-1

你不能像这样计算。你可以通过两种方式做到这一点:

  1. 按月份分组,然后在 Android 端总结并添加缺少的月份。
  2. 尝试使用存储过程来实现。(对于您的情况,我不确定在 sql lite 上是否可行。)阅读

所以我会选择第一个选项。

于 2012-06-29T05:30:47.797 回答