Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

बहुविकल्पीय उत्तर टी-एसक्यूएल क्वेरी

प्रत्येक प्रश्न के लिए अपेक्षित उत्तरों और सबमिट किए गए उत्तरों की सूची बनाएं (आपको FULL OUTER JOIN की आवश्यकता है ऐसा करने के लिए, एक LEFT join पर्याप्त नहीं है) और मैचों की संख्या गिनें। फिर इस गिनती की तुलना अपेक्षित उत्तरों की गिनती से करें।

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

आप एक लाइव डेमो यहां पा सकते हैं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर 2005 रिपोर्टिंग सेवाओं के साथ सशर्त दृश्यता और पृष्ठ विराम

  2. T-SQL का उपयोग करके SQL सर्वर में एक विदेशी कुंजी का नाम बदलें

  3. SQL कनेक्शन स्ट्रिंग में कस्टम विशेषताएँ कैसे जोड़ें?

  4. SQL सर्वर 2008 भूगोल STDistance () मान

  5. ट्रिगर हटाएं के बजाय रिकॉर्ड हटाएं