Как получить сумму столбца SQLite на ту же дату - PullRequest
0 голосов
/ 17 сентября 2018

У меня есть база данных SQLite с 4 столбцами:

COL1 = ID

COL2 = ДАТА

COL3 = ОПИСАНИЕ

COL4 =СУММА

Я задал этот вопрос раньше и получил способ получить сумму суммы столбца.как это:

public long get_tot_inc() {
    long rv = 0;
    String[] columns = new String[]{"sum(" + COL4 + ")"};
    SQLiteDatabase db = this.getWritableDatabase();
    Cursor csr = db.query(TABLE_NAME, columns, null, null, null, null, null);
    if (csr.moveToFirst()) {
        rv = csr.getLong(0);
    }
    csr.close();
    return rv;
}

Но теперь я показываю ListView, основанный на той же дате, предоставленной через строку, используя такой код:

public Cursor get_amo_by_date(String dat) {
    SQLiteDatabase db = this.getWritableDatabase();
    String query = "SELECT " + COL4 + " FROM " + TABLE_NAME +
            " WHERE " + COL2 + " = '" + dat + "'";
    return db.rawQuery(query, null);
}

Мне нужно получить сумму этого нового ListView.Если возможно, пожалуйста, дайте мне метод для выполнения вычислений путем извлечения данных в int, а затем выполните вычисления в Activity.Хотя, если SQLite проще, дай мне это.

Ответы [ 2 ]

0 голосов
/ 17 сентября 2018

Я надеюсь, что это сработает для вас

public int calculateAmountByDate(String dat)
    {
        int sum=0;
        Cursor cur = db.rawQuery( "SELECT SUM( " + COL4 + ") FROM " + TABLE_NAME +
                " WHERE " + COL2 + " = '" + dat + "'", null);
        if(cur.moveToFirst())
        {
            sum= cur.getInt(0);
        }
        return sum;
    }

, оно вернет значение в целых числах.

int amount=calculateAmountByDate("Pass your Date here");

покажет это значение представлению.

0 голосов
/ 17 сентября 2018
public Cursor get_amo_by_date(String dat) {
    SQLiteDatabase db = this.getWritableDatabase();
    String query = "SELECT " + COL4 + " FROM " + TABLE_NAME +
            " WHERE " + COL2 + " = '" + dat + "'";
    return db.rawQuery(query, null);
}

это правильно, как я думаю

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...