ms access - SQL COUNT command -
create table student_exam( exam_id integer, s_id integer, primary key (exam_id, s_id), foreign key (exam_id) references exams(exam_id), foreign key (s_id) references students(s_id), pass text ); create table students( s_id integer primary key, first_name text, surname text ); create table exams( exam_id integer primary key, date_taken date );
how can correct this?
select max(students.s_id) s_id, **count(pass="yes")** no_of_exams_taken student_exam, students, exams students.s_id=student_exam.s_id , exams.exam_id=student_exam.exam_id , (exams.date_taken)>=#1/1/2010# , (exams.date_taken)<=#12/31/2010# group student_exam.s_id;
i count number of exams each student has passed? how count should in select command?
select student.s_id, count(*) final_exam_level student, exams, student_exam (student.s_id)=student_exam.s_id , ((exams.exam_id)=student_exam.exam_id) , (exams.date_taken)<=#12/31/2010# group student.s_id, student.course_level order student.s_id;
above correct query
select s.s_id student_id, count(*) students s left join student_exam se on s.s_id = se.s_id , se.pass='yes' left join exam e on se.exam_id = e.exam_id group s.s_id
i suggest change pass non text field. if going have yes , no should boolean.
Comments
Post a Comment