Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Pilihan ganda menjawab pertanyaan T-SQL

Untuk setiap pertanyaan, daftar jawaban yang diharapkan dan jawaban yang dikirimkan (Anda memerlukan FULL OUTER JOIN untuk melakukan ini, LEFT bergabung tidak cukup) dan hitung jumlah kecocokan. Kemudian bandingkan hitungan ini dengan jumlah jawaban yang diharapkan.

select question_id, case when cnt = sum_test then 1 else 0 end as mark
from (
    select question_id, count(*) cnt, sum(test) sum_test
    from (
        select coalesce(q.question_id, s.question_id) as question_id, 
        correct_option_id, 
        submitted_option_id, 
        case when correct_option_id = submitted_option_id then 1 else 0 end as test
        from question_answer q full outer join user_exam_answer s 
        on q.question_id = s.question_id and q.correct_option_id = s.submitted_option_id
        ) x
    group by question_id
) y

Anda dapat menemukan demo langsung di sini



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ADO.Net SQLCommand.ExecuteReader() melambat atau hang

  2. Terapkan Luar Mengembalikan kolom secara tidak terduga NOT NULL saat tidak ada kecocokan

  3. Apakah Penyedia Microsoft OLE DB untuk SQL Server mendukung TLS 1.2?

  4. Menghubungkan ke SQL Server dari Nodejs

  5. membuat tabel #temp secara dinamis dan kemudian digunakan untuk memasukkan data