0

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ステートメントです。それが配置されている場合、データはプルされません。削除すると、正しいデータが取得されますが、1 つのレコードからのみ取得されます。

4

2 に答える 2

1

SQLite で合計関数を使用する

Cursor cursor = sqliteDatabase2.rawQuery(
    "SELECT SUM(COLUMN_CREDIT_SCORE) FROM BorrowMeTable", null);

ContentProvider でこれと一致する URI を別の URI として使用できます

次に、スカラー値を取得します。

if(cursor.moveToFirst()) {
    return cursor.getInt(0);
于 2013-03-10T00:58:33.853 に答える
0

do-> whileを使用して、最初のレコードから開始します

  do{
    number = number + databaseCursor2.getInt(
            databaseCursor2.getColumnIndexOrThrow(
                    BorrowMeTable.COLUMN_CREDIT_SCORE));
}while (databaseCursor2.moveToNext());
于 2013-03-10T03:09:55.197 に答える