【问题标题】:Android Sqlite calculation : How to Sum up two Columns sperately and divide one column sum by another column sumAndroid Sqlite 计算:如何分别总结两列并将一列总和除以另一列总和
【发布时间】:2018-03-29 05:30:11
【问题描述】:

伙计们,根据我的时区,我应该说早上好

我正在开发一个 android 项目,该项目将组合或连接两个表并按 id 显示,它工作了我现在想知道如何分别总结两列并将一列总和除以同一函数的另一列总和

到目前为止我的进步

  public List<Courses> getListCourses(int id) {
    Courses courses = null;
    List<Courses> coursesList = new ArrayList<>();
    openDatabase();

    Cursor cursor = mDatabase.rawQuery("SELECT * FROM COURSES C INNER JOIN SEMESTER S ON S.semester_id=C.semester_id AND S.LEVEL_ID = C.LEVEL_ID AND S.LEVEL_CODE = C.LEVEL_CODE WHERE C.semester_id =  ?", new String[]{String.valueOf(id)});

    cursor.moveToFirst();
    while (!cursor.isAfterLast()) {
        courses = new Courses(cursor.getInt(0), cursor.getInt(1), cursor.getString(2), cursor.getInt(3), cursor.getInt(4), cursor.getString(5), cursor.getInt(6), cursor.getString(7), cursor.getInt(8));
        coursesList.add(courses);
        cursor.moveToNext();
    }
    cursor.close();
    closeDatabase();
    return coursesList;
}

这是两张表

学期表

   Id  |   semester_id    |   semester_code    |   level
   -------------------------------------------------
   1   |   1              |   1st Semester     |   100       
   2   |   2              |   2nd Semester     |   100        
   3   |   3              |   1st Semester     |   100       
   4   |   4              |   2nd Semester     |   100        
   5   |   5              |   1st Semester     |   100        

课程表

 Id  |Se_id| grade |  level |  semester     |  credit_unit  |  gp_unit
 ----------------------------------------------------------------------
 62  |  1  |  A   |  100   |  1st Semester  |  2           |  5
 63  |  1  |  B   |  100   |  1st Semester  |  2           |  4
 64  |  2  |  C   |  100   |  2nd Semester  |  2           |  3
 65  |  2  |  A   |  100   |  2nd Semester  |  2           |  5
 66  |  1  |  C   |  100   |  1st Semester  |  3           |  2

我想总结 CREDIT_UNIT 列并总结 GP_UNIT 列并将 GP_UNIT 总结除以 CREDIT_UNIT 总结我卡住了不知道如何添加它

 Cursor cursor = mDatabase.rawQuery("SELECT * FROM COURSES C INNER JOIN SEMESTER S ON S.semester_id=C.semester_id AND S.LEVEL_ID = C.LEVEL_ID AND S.LEVEL_CODE = C.LEVEL_CODE WHERE C.semester_id =  ?", new String[]{String.valueOf(id)});

【问题讨论】:

  • 使用求和函数
  • 我不知道如何实现它仍然是 android sqlite 的新手
  • 会加和除
  • 检查我的答案

标签: java android sqlite sum divide


【解决方案1】:

你可以使用求和法,然后将其存储在变量中进行划分

int creditunit,gpunit;
cursor = db.rawQuery("select sum(credit_unit) from FROM COURSES C INNER JOIN SEMESTER S ON S.semester_id=C.semester_id AND S.LEVEL_ID = C.LEVEL_ID AND S.LEVEL_CODE = C.LEVEL_CODE WHERE C.semester_id =  ? ;", new String[]{String.valueOf(id)});
if(cursor.moveToFirst())
    creditunit =cursor.getInt(0);
else
    creditunit = -1;
cursor.close();

cursor = db.rawQuery("select sum(gp_unit) FROM COURSES C INNER JOIN SEMESTER S ON S.semester_id=C.semester_id AND S.LEVEL_ID = C.LEVEL_ID AND S.LEVEL_CODE = C.LEVEL_CODE WHERE C.semester_id =  ? ;", new String[]{String.valueOf(id)});
if(cursor.moveToFirst())
    gpunit =cursor.getInt(0);
else
    gpunit = -1;
cursor.close();
//perform division
double sol= creditunit/gpunit;

编辑:查询是 ,

 cursor = db.rawQuery("select sum(credit_unit),sum(gp_unit) from FROM COURSES C INNER JOIN SEMESTER S ON S.semester_id=C.semester_id AND S.LEVEL_ID = C.LEVEL_ID AND S.LEVEL_CODE = C.LEVEL_CODE WHERE C.semester_id =  ? ;", new String[]{String.valueOf(id)});

更新

要在你的活动中访问适配器类的代码,

将您的任务作为活动中的方法,

public void getsolution(double sol)
{
    //code for displaying sol in textview
}

然后在你的适配器类中,

1.在构造函数中传递活动引用

public adapter(YourActivity activity)

2.执行完你的sql代码,调用activity方法

 activity.getsolution(sol);

【讨论】:

  • 你到底想要什么?
  • 我认为您可以将 from 表替换为连接表。查看编辑后的答案
  • 谢谢让我试试笔记本电脑死机重启了我会反馈给你
  • 如果有异常请告诉我
  • 我不明白?你能解释一下你在哪里使用这个代码
猜你喜欢
  • 1970-01-01
  • 2017-08-20
  • 2021-08-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-29
相关资源
最近更新 更多