В комнате ДБ Дао класс - как получить значения из таблицы, сравнивая различные значения столбца? - PullRequest
1 голос
/ 21 октября 2019

Я работаю с базой данных Room и хочу получить значения двух столбцов (Категория и общая сумма) из таблицы IncomeExpense, сравнив отдельные значения в столбце категории. Позвольте мне объяснить, например, в столбце категории есть 4 строки, которые имеют одинаковое значение (денежные средства), что я хочу, чтобы вычислить общую сумму столбца суммы, где категория - это денежные средства и значение категории (в данном случае это наличные). Я беру значения этих категорий из другой таблицы (таблицы категорий), в которую пользователь может добавлять, редактировать или удалять категории.
Проблема в том, что я не знаю, как сравнить категорию с теми значениями, которые пользователь добавил в столбец категории, динамически в этомкейс.

Это мой класс сущностей.

@Entity
public class IncomeExpense  {
    @PrimaryKey(autoGenerate = true)
    private int id =0;

    private String type;
    private int amount;
    private String category;
    private String date;
    private String time;
    private String mode;
    private String note;

Это класс Дао, где я должен написать этот запрос

@Query("SELECT SUM(amount), category from IncomeExpense WHERE category like 'What should I write here to get these values in this case'");

Я просто хочу получить общую сумму изначение категории в этом случае

1 Ответ

0 голосов
/ 21 октября 2019

Вы можете использовать предложение group by, это вернет список на IncomeExpense, но сумма будет сгруппирована по категориям

@Query("SELECT SUM(amount) as amount,category from IncomeExpense GROUP BY category");
public List<IncomeExpense> getCategoryPrice();

Например: База данных имеет: [ (10, Cash), (50, Cash), (20, Credit), (10, Credit) ]

Приведенный выше запрос вернет [ (60, Cash), (30, Credit) ]

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