我正在尝试从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);

08-16 22:30