如您所见,我想获取指定学生的总数。
我尝试使用下面的代码,但没有得到所找到的内容!
// DatabaseHelper
$data = '<title>test</title>' . file_get_contents('copy.php');
file_put_contents('destination.xml', $data);
//主要
while
我试图获取其学分总数的用户被选为三个课程:2.5、5、2学分。 我希望Count(CourseCredit)的输出为9.5,但实际输出为2.5。
答案 0 :(得分:1)
您可能想基于所选行的列的 SUM 而不是所选行的 COUNT :-
Cursor cursor = db.rawQuery("SELECT sum(CourseCredit) FROM tblCourses JOIN tblMyCourses ON tblCourses.CourseNumber = tblMyCourses.CourseNumber WHERE StudentNumber = ? ",new String[]{ StudentNo } );
在数据库助手中,您可以使用(替换当前的MyCredits方法):-
public double MyCredits(String StudentNo){
double rv = 0;
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery("SELECT sum(CourseCredit) AS credits FROM tblCourses JOIN tblMyCourses ON tblCourses.CourseNumber = tblMyCourses.CourseNumber WHERE StudentNumber = ? ",new String[]{ StudentNo } );
if (cursor.moveToFirst()) {
rv = cursor.getDouble(cursor.getColumnIndex("credits"));
}
cursor.close();
return rv;
}
请注意,如果没有与学生编号匹配的行,则返回值为0。
然后您可以在Main中使用以下链接:-
double credits = db.MyCredits(commonValues.SaveStrudentID);
if (credits > 0) {
Log.i(TAG, String.valueOf(credits));
} else {
Toast.makeText(context, "You didn't selected any Course", Toast.LENGTH_SHORT).show()
}