public function getAverageForMarkNumber($mark_number = null) { if ($mark_number < $this->getCourse()->getCurrentPeriod() || is_null($mark_number) && $this->getCourse()->getIsClosed()) { $c = new Criteria(); $c->add(CourseSubjectStudentPeer::COURSE_SUBJECT_ID, $this->getId()); $c->addJoin(CourseSubjectStudentMarkPeer::COURSE_SUBJECT_STUDENT_ID, CourseSubjectStudentPeer::ID); if (!is_null($mark_number)) { $c->add(CourseSubjectStudentMarkPeer::MARK_NUMBER, $mark_number); } $c->clearSelectColumns(); $c->addSelectColumn("SUM(" . CourseSubjectStudentMarkPeer::MARK . ") as sum"); $stmt = CourseSubjectStudentMarkPeer::doSelectStmt($c); $sum = $stmt->fetchAll(PDO::FETCH_COLUMN); return sprintf('%.4s', $sum[0] / CourseSubjectStudentMarkPeer::doCount($c)); } }