2011-11-12 13 views
0

こんにちはみんな、私のsqliteデータベースから列の値の合計をアンドロイドで取得したいと思います。 これを使用してKEY_COST列の合計を取得しようとしています。androidでSQLiteをクエリする(列の値の合計)

public Cursor fetchAllCost() { 
    return mDb.query(
        DATABASE_TABLE, 
        new String[] { "SUM(KEY_COST)"}, 
        null, 
        null, 
        null, 
        null, 
        null); 
} 

しかし、それは私にカーソルを与え、私はCursorオブジェクトから値を取得する方法を知らない。いずれかのヘルプ!

答えて

0

cursor.moveFirst()でカーソルの最初の結果に移動してから、cursor.getInt(1)を実行してスカラー値を取得します。

1

あなたはそうのようなスカラー値を返すことができます。データ型を使用simpleQueryForString()に応じて、

public int getColumnData() { 

    mDb = mDbManager.getReadableDatabase(); 
    final SQLiteStatement stmt = mDb 
      .compileStatement("SELECT SUM(KEY_COST) FROM..."); 

    // Cast as appropriate 
    return (int) stmt.simpleQueryForLong(); 
} 

または代わりに。

0

rawQuery
合計値が最初の列にある - cursor.getInt(0)

Cursor cursor = database.rawQuery(
    "SELECT SUM(" + COL_NAME + ") FROM " + TABLE_NAME, null); 
if(cursor.moveToFirst()) { 
    return cursor.getInt(0); 
} 


クエリ

String[] columns = new String[] {     
       "sum(" + DbHelper.C_COUNT_OF_WORDS + ")" 
       }; 

     String where = null; 
     String whereArgs[] = null; 
     String groupBy = null; 
     String having = null; 
     String order = null; 
     String limit = null; 

     database = dbHelper.getReadableDatabase(); 
     Cursor cursor = database.query(DbHelper.TABLE_STATISTICS, columns, where, whereArgs, groupBy, having, order, limit); 

     if(cursor.moveToFirst()) { 
      return cursor.getInt(0);    
     } 
関連する問題