2011-11-12 69 views
0

嗨,大家好,我想從android中的sqlite數據庫中獲得列值的總和。 並試圖用這個來得到列KEY_COST的總和。查詢android中的SQLite(求和列值)

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

但它給了我一個遊標,我不知道如何從光標對象獲取值。任何一個幫助!

回答

0

你只需要移動光標中的第一個結果cursor.moveFirst()然後你可以做cursor.getInt(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(); 
} 

或者,:

1

您可以返回標量值像這樣。

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);    
     }