2012-04-08 2 views
0

У меня есть две таблицы (TABLE_EXAM, TABLE_RESULT). Вот значение моего TABLE_RESULT.Android-SQLite: как подсчитать конкретное значение из столбца?

result_id exam_id question_id correct_answer 
    1   2   4    y  
    2   2   5    y  
    3   2   6    n   
    4   2   7    y   

Мне нужно подсчитать, сколько correct_answer = 'y', где exam_id = 2.
Я стараюсь следующий код, но он вернется 0.

public int calculateResult(int examId,String confirmAnswer) 
{ 
    int correctAnswer=0; 
    try 
    { 
     SQLiteDatabase db=this.getWritableDatabase(); 

     String selectQuery=("select count(correctAnswer) from result where exam_id ='" + examId + "' and correctAnswer ='" + 'y' +"'"); 
     // String selectQuery=("SELECT COUNT(*)FROM result WHERE exam_id ='" + examId + "' and correctAnswer ='" + confirmAnswer +"'");    
      Cursor cursor = db.rawQuery(selectQuery, null); 
     if(cursor.moveToLast()) 
     { 
      correctAnswer=cursor.getInt(3); 
     } 
    } 
    catch(Exception e) 
    { 
     e.printStackTrace(); 
    } 
    return correctAnswer; 
} 

В переменной confirm_answer я прохожу «у».
Дайте мне подсказку или ссылку.
Любая помощь приветствуется.
Спасибо заранее

ответ

4
select count(*) from TABLE_RESULT where correct_answer="y" and exam id=2; 

Это общее количество строк, которое имеет значение, как у и экзамен ид = 2

Просто попробуйте запустить этот запрос, а затем просто добавить свои параметры к нему.

SELECT COUNT(*)FROM result WHERE exam_id =" + examId + " and correctAnswer ='" + confirmAnswer +"'"); 

Выше вашего запроса, который я отформатировал.

Надеюсь, это вам поможет.

+0

@sanpatil: Я думаю, ваша ошибка давала 2 в виде строки в запросе, который я только что удалил. – Bhavin

+0

Спасибо ... Нет, на самом деле я сдаю exam_id, который содержит значение 2 .... ваш первый запрос запускается на SQLite Browser, но мне нужно проверить его в программе ..... –

Смежные вопросы