Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Zapytanie T-SQL z odpowiedzią wielokrotnego wyboru

Dla każdego pytania wymień oczekiwane odpowiedzi i przesłane odpowiedzi (potrzebujesz FULL OUTER JOIN aby to zrobić, LEFT dołączenie nie wystarczy) i policz liczbę dopasowań. Następnie porównaj tę liczbę z liczbą oczekiwanych odpowiedzi.

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

Możesz znaleźć demonstrację na żywo



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SSRS zwracające inne wyniki niż procedura składowana

  2. Pobieranie danych za pomocą zestawu znaków UTF-8 z serwera MSSQL przy użyciu rozszerzenia PHP FreeTDS

  3. połącz dwie kolumny bazy danych w jedną kolumnę wyników;

  4. SQL-Server:Czy istnieje skrypt SQL, którego mogę użyć do określenia postępu procesu tworzenia kopii zapasowej lub przywracania SQL Server?

  5. Problem z parametrami wyjściowymi programu SQL Server