我是新手在Java编程,所以我需要一些帮助…我在做这个累加的事情...
就像这样..
Score Accumulated
10 10
40 50
60 110
and so on.......这里有我的代码..。
public int accumulateScores(){
db = this.getReadableDatabase();
String query = "SELECT score, (SELECT sum(score) FROM "
+ TABLE_NAME+ ")" + " AS accumulated" + " FROM " + TABLE_NAME;
Cursor cursor = db.rawQuery(query, null);
if (cursor != null)
cursor.moveToFirst();
Score score = new Score(Integer.parseInt(cursor.getString(0)), cursor.getInt(1));
}我应该怎么做才能返回列得分的总和。提前谢谢..任何帮助都将深表感谢..
发布于 2013-07-22 02:33:18
这应该会以一种相当简单的方式完成所需的操作,只需将所有行ID小于当前行的行求和即可。如果你在表中有一个自动递增的键,你可能想要使用那个键来获得一个更可预测的分数排序。
SELECT Score,
(SELECT SUM(Score)
FROM table_name a
WHERE rowid <= table_name.rowid
) Accumulated
FROM table_name
ORDER BY rowidAn SQLfiddle to test with。
编辑:基于你的错误样本;
SELECT score,
(SELECT SUM(score)
FROM score_table a
WHERE a.id <= score_table.id
) Accumulated
FROM score_table
ORDER BY idAnother SQLfiddle。
发布于 2013-07-22 02:35:31
您应该使用Google more并键入以下代码
SELECT SCORE,(SELECT SUM(SCORE) FROM table_name PATING WHERE rowid <=table_name.rowid )从table_name ORDER BY rowid累积
https://stackoverflow.com/questions/17775471
复制相似问题