android - SQLite SUM 得到值 0
问题描述
我想从 sqltie 函数 SUM 中获取值,但我得到的值为 0。
我厌倦了这样的例子,比如在 SQLite Android 中计算列的总和。但我没有得到 0 值。这是我的代码
private static final String TABLE_REPORT = "MST_REPORT";
private static final String FIELD_ID_REPORT = "ID_REPORT";
private static final String FIELD_REPORT_Dollar = "REPORT_Dollar";
private static final String FIELD_REPORT_QTY = "REPORT_QTY";
//CREATE REPORT TABLE
String CREATE_REPORT = "CREATE TABLE " + TABLE_REPORT + "("
+ FIELD_ID_REPORT + " INTEGER PRIMARY KEY AUTOINCREMENT, "
+ FIELD_REPORT_Dollar + " INTEGER, "
+ FIELD_REPORT_QTY+ " INTEGER "+ ")";
db.execSQL(CREATE_REPORT);
//REPORT
//ADD REPORT
public void addReport(MstReport Report) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(FIELD_ID_REPORT, Report.getIdReport());
values.put(FIELD_REPORT_Dollar, Report.getReportDollar());
values.put(FIELD_REPORT_QTY, Report.getReportQty());
db.insert(TABLE_REPORT, null, values);
}
//GET ALL REPORT
public List<MstReport> getAllReport() {
List<MstReport> ListReport = new ArrayList<MstReport>();
String selectQuery = "SELECT * FROM " + TABLE_REPORT;
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
if (cursor.moveToFirst()) {
do {
MstReport Data = new MstReport();
Data.setIdReport(cursor.getString(0));
Data.setReportDollar(cursor.getInt(1));
Data.setReportQty(cursor.getInt(2));
ListReport.add(Data);
} while (cursor.moveToNext());
}
return ListReport;
}
当我调用 getAllReport 函数时,它是有价值的。但是当我调用函数 SUM 时,我得到的值为 0。这是函数 (getReportUSD())..
public List<MstReport> getReportUSD() {
List<MstReport> ListReportSUMD = new ArrayList<MstReport>();
String selectQuery = "SELECT SUM (" +FIELD_REPORT_Dollar+ ")as TotalUSD FROM " + TABLE_REPORT;
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
if (cursor.moveToFirst()) {
do {
MstReport Data = new MstReport();
Data.setReportRp(cursor.getColumnIndex("TotalUSD");
ListReportSUMD.add(Data);
} while (cursor.moveToNext());
}
return ListReportSUMD;
}
当我调试结果是 SUM 值为 0。对不起,我是新手开发人员。希望您能够帮助我。谢谢 :)
解决方案
利用
Data.setReportRp(cursor.getInt(cursor.getColumnIndex("TotalUSD")));
代替
Data.setReportRp(cursor.getColumnIndex("TotalUSD");
当前将列索引传递给setReportRp
方法。
推荐阅读
- css - .monaco-editor 类覆盖我的 VSCode 主题的样式
- react-apollo - Apollo 客户端:更新缓存时的 writeFragment 或 readFragment?
- javascript - React .map 不是对象数组上的函数
- android - 我已经创建了一个歌曲播放器,我只想让它在完成后播放下一首歌曲
- c# - 如何订购多文本框
- c - C中矩阵的排列
- javascript - 它没有一个一个地切换到一个主题,而是以“太阳能”主题结束并且不会改变。有什么问题?
- plot - 如何在 VSCode 中内联绘图?
- bitmap - MIPS:基于文本文件的彩色位图 (mars-sim)
- google-chrome-devtools - Apollo Client:观察查询和主动查询的区别