Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何使用ORMlite查找表中字段的和_Android - Fatal编程技术网

Android 如何使用ORMlite查找表中字段的和

Android 如何使用ORMlite查找表中字段的和,android,Android,模型 } 数据库管理器 public class HouseHoldIncome implements Serializable { private static final long serialVersionUID = 1299751771198967848L; @DatabaseField(generatedId = true) private int id; @DatabaseField private String incomecategory; @DatabaseFie

模型

}

数据库管理器

 public class HouseHoldIncome implements Serializable {

private static final long serialVersionUID = 1299751771198967848L;

@DatabaseField(generatedId = true)
private int id;

@DatabaseField
private String incomecategory;



@DatabaseField(columnName = "date", dataType = 
DataType.DATE_STRING,format = "MM-dd-yyyy")
private Date date;

@DatabaseField
private int content;

@DatabaseField
private float sum;


 @DatabaseField(foreign = true,foreignAutoRefresh = true, canBeNull = 
 false,
        index = true)
private Category category;


public HouseHoldIncome() {

}


public int getId() {
    return id;
}

public void setId(int id) {
    this.id = id;
}




public int getContent() {
    return content;
}

public void setContent(int content) {
    this.content = content;
}

public float getSum() {
    return sum;
}

public void setSum(float sum) {
    this.sum = sum;
}


public String getIncomecategory() {
    return incomecategory;
}

public void setIncomecategory(String incomecategory) {
    this.incomecategory = incomecategory;
}

public Category getCategory() {
    return category;
}

public void setCategory(Category category) {
    this.category = category;
}


public Date getDate() {
    return date;
}

public void setDate(Date date) {
    this.date = date;
}
公共列表GetAllHouseholdIncome(日期从,日期
(至){
列出住户收入=新收入
ArrayList();
试一试{
Dao dahouseholdincom=
dbHelper.getDaoHouseHoldIncome();
最终日期格式df=新的简化格式(“MM dd yyyy”);
GenericRawResults行结果=
dahouseholdincom.queryRaw(“从住户收入中选择日期、金额
其中日期介于“2015年1月1日”和“2015年12月31日”之间,按日期分组“,
新的RawRowMapper(){
@凌驾
public HouseHoldIncome mapRow(字符串[]列名称,字符串[])
结果(列){
还新
住户收入(df.parse(resultColumns[0]),
parseFloat(resultColumns[1]);
}
});
rowresults.close();
}捕获(SQLE异常){
Logger.get().e(GreenAgriApp.getInstance(),
e、 getMessage());
e、 printStackTrace();
}
返还户主收入;
}
虽然在SQLite数据库浏览器中手动运行查询时返回的结果为空,但查询返回的结果为空

调试时,将显示结果的值size=0


有人能告诉我哪里出了问题吗?

可能是因为您在同一列“日期”中使用了条件和分组依据。首先尝试删除group by子句。

这可能是因为您在同一列“日期”上使用了条件和group by。首先尝试删除GROUPBY子句

  public  List<HouseHoldIncome>getAllHouseholdincome(Date from,Date 
to) {



        List<HouseHoldIncome> houseHoldIncomes = new 
        ArrayList<HouseHoldIncome>();
        try {
            Dao<HouseHoldIncome, String> dahouseholdincom = 
 dbHelper.getDaoHouseHoldIncome();


    final DateFormat df = new SimpleDateFormat("MM-dd-yyyy");
    GenericRawResults<HouseHoldIncome> rowresults=

    dahouseholdincom.queryRaw("select date,sum(sum) from HouseHoldIncome 
   where date between '01-01-2015' and '12-31-2015' group by date",
                    new RawRowMapper<HouseHoldIncome>() {
                        @Override

    public HouseHoldIncome mapRow(String[] columnNames, String[] 
     resultColumns) {
                            return new 
    HouseHoldIncome(df.parse(resultColumns[0]),
    Float.parseFloat(resultColumns[1]));
                        }
                    });

            rowresults.close();

        } catch (SQLException e) {
            Logger.get().e(GreenAgriApp.getInstance(), 
     e.getMessage());
            e.printStackTrace();
        }
        return houseHoldIncomes;
    }