2011-11-12 4 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); 
} 

그러나 커서를 사용하면 커서 개체에서 값을 가져 오는 방법을 알 수 없습니다. 하나의 도움 !!!

답변

0

cursor.moveFirst()으로 커서의 첫 번째 결과로 이동 한 다음 cursor.getInt(1)을 수행하여 스칼라 값을 가져와야합니다.

1

당신과 같이 스칼라 값을 반환 할 수 있습니다 : 또는

public int getColumnData() { 

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

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

또는, 데이터 유형 사용 simpleQueryForString()에 따라 달라집니다.

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