我有一个包含4列的SQLite数据库:
COL1 = ID
COL2 = DATE
COL3 = DESCRIPTION
COL4 = AMOUNT
我之前问过this question,并且有一种方法来获取金额列的总和。像这样:
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更容易,请给我。
答案 0 :(得分:3)
我希望这对您有用
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");
在视图中显示该值。
答案 1 :(得分:-1)
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);
}
这是我想的