【发布时间】:2017-04-15 08:20:31
【问题描述】:
查询是获取用户对一个问题选择的多项选择答案是否正确,如果正确则为1,否则为0
我有两个表question_answer 和user_exam_answer,条目表在submitted_option_id 列中有用户提交的答案
当用户回答 (user_exam_answer) 与问题回答 (question_answer) 表匹配时,我尝试编写查询
select
count(1) as result
from
(select
qa.question_id,
count(qa.correct_option_id) as col1,
count(sa.submited_option_id) as col2
from
question_answer qa
left join
user_exam_answers sa on (sa.question_id = qa.question_id
and sa.submited_option_id = qa.correct_option_id
and sa.exam_id = 'html_001'
and sa.user_id = 'user_123')
group by
qa.question_id
having
count(qa.correct_option_id) = count(sa.submited_option_id)
) as t
但问题是:
QA (question_answer.correct_option_id) 有 3 个条目,SA user_exam_answers.submited_option_id) 有 2 个条目,则查询正确并返回
QA (question_answer.correct_option_id) 有 2 个条目,SA (user_exam_answers.submited_option_id) 有 3 个条目,则查询正确并返回
QA (question_answer.correct_option_id) 有 2 个条目 SA (user_exam_answers.submited_option_id) 有 1 个条目,则查询正确并返回
但何时
- QA (question_answer.correct_option_id) 有 1 个条目,SA (user_exam_answers.submited_option_id) 有 2 个条目,则查询返回错误答案
我正在寻找一个对所有四个条件都成立的查询
【问题讨论】:
-
您能否详细说明您的条件举个例子?并提供架构 (
create table) 和数据 (insert into ...)文本,而不是图片。 -
在图片链接中可以看到条目
-
@Lokesh 不要将代码发布为图片,请按原样发布(文本)
-
如果学生没有尝试回答,他们是否认为他们答错了,或者您只对跟踪尝试回答的结果感兴趣?
-
@Lokesh 欢迎来到 SO,如果您打算留下来,请学习如何提出好的问题,并帮助社区帮助您(反之亦然)。三个人已经花时间回答了,如果您提供了表架构、示例数据和对场景的清晰描述,您本可以为我们提供很多帮助。
标签: sql sql-server sql-server-2008 tsql