我正在尝试从SQLite表的多个记录中添加信用评分。
每条记录都有一个名为“信用评分”的列,我想将它们全部加在一起,但是遇到了麻烦。
这是代码:
String[] projection2 = { BorrowMeTable.COLUMN_CREDIT_SCORE };
Cursor databaseCursor2 = getContentResolver().query(uri, projection2,
null, null, null);
int number = 0;
if (databaseCursor2 != null) {
databaseCursor2.moveToFirst();
while (databaseCursor2.moveToNext()) {
number = number + databaseCursor2.getInt(
databaseCursor2.getColumnIndexOrThrow(
BorrowMeTable.COLUMN_CREDIT_SCORE));
}
}
Log.d("SCORE", Integer.toString(number));
问题是
while
语句,当它在适当的位置时,它不会提取任何数据。当我删除它时,它仅从一条记录中提取正确的数据。 最佳答案
在SQLite中使用sum函数
Cursor cursor = sqliteDatabase2.rawQuery(
"SELECT SUM(COLUMN_CREDIT_SCORE) FROM BorrowMeTable", null);
您可以在ContentProvider中将URI与其他URI匹配
然后只需获取标量值:
if(cursor.moveToFirst()) {
return cursor.getInt(0);