繁体   English   中英

在 Room db Dao 类中 - 如何通过比较列的不同值从表中获取值?

[英]In Room db Dao class- how to get values from table by comparing distinct values of a column?

我正在研究 Room 数据库,我想通过比较类别列中的不同值从IncomeExpense表中获取两列值(类别和总金额)。 让我解释一下,例如在类别列中有 4 行具有相同的值(现金),我想要计算类别为现金和类别值(在本例中为现金)的金额列的总金额。 我从另一个表(类别表)中获取这些类别值,用户可以在其中添加编辑或删除类别。
问题是我不知道如何将类别与用户在类别列中添加的那些值进行比较,在这种情况下是动态的。

这是我的实体 class。

@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;

这是 Dao class 我必须写这个查询

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

在这种情况下,我只想获取总金额和类别值

您可以使用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) ]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM