Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dao/hibernate/AssessmentResultDAOHibernate.java =================================================================== diff -u -r36716004da333fcc5eb3f776801e3e5278719fd7 -r83788437f93dd64ff91ee58e0cd343bdc8a55f33 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dao/hibernate/AssessmentResultDAOHibernate.java (.../AssessmentResultDAOHibernate.java) (revision 36716004da333fcc5eb3f776801e3e5278719fd7) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dao/hibernate/AssessmentResultDAOHibernate.java (.../AssessmentResultDAOHibernate.java) (revision 83788437f93dd64ff91ee58e0cd343bdc8a55f33) @@ -108,22 +108,29 @@ private static final String FIND_BY_UID = "FROM " + AssessmentResult.class.getName() + " AS r WHERE r.uid = ?"; private static final String ANSWERED_QUESTIONS_BY_USER_COUNT = "" - + "SELECT answered_question_count, COUNT(user_uid) AS user_count FROM " - + " (SELECT user_uid, " - + " SUM(IF(answer_boolean = 1 OR (answer IS NOT NULL AND TRIM(answer) <> ''), 1, 0)) AS answered_question_count FROM" - + " (SELECT ar.user_uid, oa.question_result_uid, oa.answer_boolean, qba.answer" - + " FROM tl_laasse10_assessment AS a" - + " JOIN tl_laasse10_assessment_result AS ar ON a.uid = ar.assessment_uid" - + " LEFT JOIN tl_laasse10_question_result AS qr ON ar.uid = qr.result_uid" - + " LEFT JOIN lams_qb_tool_answer AS qba ON qba.answer_uid = qr.uid" - + " LEFT JOIN tl_laasse10_option_answer AS oa ON oa.question_result_uid = qr.uid" - + " WHERE ar.latest = 1 " - + " AND (oa.answer_boolean IS NULL OR oa.answer_boolean = 1)" - + " AND a.content_id = :toolContentId " - + " GROUP BY oa.question_result_uid, ar.user_uid " - + " ) AS answered_questions " - + " GROUP BY user_uid) AS answered_questions_by_user_count " - + "GROUP BY answered_question_count "; + + "SELECT answered_question_count, COUNT(user_uid) AS user_count FROM" + + " (SELECT user_uid, SUM(IF( " + + " (type = 1 AND answer_boolean = 1) OR" + + " (type = 2 AND answer_int <> -1) OR" + + " ((type BETWEEN 3 AND 6) AND (answer IS NOT NULL AND TRIM(answer) <> '')) OR" + + " (type = 7 AND mark > 0) OR " + + " (type = 8 AND answer_int > 0)" + + " ,1, 0)) AS answered_question_count FROM" + + " (SELECT ar.user_uid, qbq.type, qr.mark, qbta.answer, oa.answer_boolean, oa.answer_int" + + " FROM tl_laasse10_assessment AS a" + + " JOIN tl_laasse10_assessment_result AS ar ON a.uid = ar.assessment_uid" + + " JOIN tl_laasse10_question_result AS qr ON ar.uid = qr.result_uid" + + " JOIN lams_qb_tool_answer AS qbta ON qbta.answer_uid = qr.uid" + + " JOIN lams_qb_tool_question AS qbtq USING (tool_question_uid)" + + " JOIN lams_qb_question AS qbq ON qbq.uid = qbtq.qb_question_uid" + + " LEFT JOIN tl_laasse10_option_answer AS oa ON oa.question_result_uid = qr.uid" + + " WHERE ar.latest = 1" + + " AND ((qbq.type = 7 AND qr.mark > 0) OR (qbta.answer IS NOT NULL AND TRIM(qbta.answer) <> '') " + + " OR oa.answer_boolean IS NULL OR oa.answer_boolean = 1 OR answer_int <> -1)" + + " AND a.content_id = :toolContentId" + + " GROUP BY qr.uid, ar.user_uid) AS answered_questions " + + " GROUP BY user_uid) AS answered_questions_by_user_count " + + "GROUP BY answered_question_count"; @Override @SuppressWarnings("unchecked")