1

最も簡単に言えば、次のような値を持つテーブルがある場合

x    5
x    7
y    3
v    19
x    24

y や v などを除く x のすべての int 値を合計したい

現在、x のすべての列値を返す作業コードがあります (この場合は dateAccessed)

public ArrayList<HashMap<String, String>> searchByDate() {


    String dateAccessed = FoodDiary.dateAccessed;       

    ArrayList<HashMap<String, String>> wordList;
    wordList = new ArrayList<HashMap<String, String>>();
    SQLiteDatabase database = this.getReadableDatabase();
    //String selectQuery = "SELECT  * FROM diarys";
    String selectQuery = "diarys";
    Cursor cursor = database.query(selectQuery, new String[] { "diaryId",
            "diaryName", "diaryDate", "diaryNumber" }, "diaryDate LIKE '"
            + dateAccessed + "%'", null, null, null, null);
    if (cursor.moveToFirst()) {
        do {
            HashMap<String, String> map = new HashMap<String, String>();
            map.put("diaryId", cursor.getString(0));
            map.put("diaryName", cursor.getString(1));
            map.put("diaryDate", cursor.getString(2));
            map.put("diaryNumber", cursor.getString(3));
            wordList.add(map);
        } while (cursor.moveToNext());
    }
    return wordList;

}

また、列全体のSUMを返すための作業コードもあります

int total = 0;
    Cursor cursor = database.rawQuery("SELECT SUM(builderNumber) FROM builders", null);

    if (cursor.moveToFirst()) 
    {
        total = cursor.getInt(0);
    } while (cursor.moveToNext());
    return total;

ただし、2つを組み合わせて両方を連携させることはできないようです。どのような方法でカーソルを作成しても、常に失敗します。

これについての助けをいただければ幸いです

4

1 に答える 1