如何将多行与来自两个不同表的其他行进行比较并检查它们是否相等?

格德曼南达莫洪

我有 2 个表名为OptionTextandSubmittedAns第一个表包含QuestionId OptionIdIsRight这里IsRight用于针对问题的选项是对还是错。这里QuestionId有多个OptionId甚至可以有一个。第二个表代表用户提交的内容。他们可以根据自己的假设选择一个选项或多个选项。现在我需要制作自动脚本来证明提交的答案是对还是错。

注意:如果一个问题有多个正确选项,则用户必须选择所有正确选项,如果缺少一个,则结果将是错误的。但是,如果他选择所有正确的答案,那么答案将是正确的。

我已经尝试过这个脚本它只能计算选定的数字,但不能证明答案是对还是错。所以我需要帮助。

我可以假设我需要一个WHILE循环来特别检查每个元素。但是如何?所以我需要帮助。这是我的代码。

CREATE TABLE OptionText(
    [OptionTextId] [bigint] IDENTITY(1,1) NOT NULL,
    [QuestionId] [bigint] NOT NULL,
    [IsRightAnswer] [bit] NOT NULL)

    Insert into OptionText (QuestionId, IsRightAnswer) VALUES (5, 1)    
    Insert into OptionText (QuestionId, IsRightAnswer) VALUES (5, 0)   
    Insert into OptionText (QuestionId, IsRightAnswer) VALUES (5, 0)

    Insert into OptionText (QuestionId, IsRightAnswer) VALUES (17, 0)    
    Insert into OptionText (QuestionId, IsRightAnswer) VALUES (17, 1)   
    Insert into OptionText (QuestionId, IsRightAnswer) VALUES (17, 1)

CREATE TABLE SubmittedAns(
    [Id] [bigint] IDENTITY(1,1) NOT NULL,
    [QuestionId] [bigint] NOT NULL,
    [OptionTextId] [bigint] NOT NULL)


    Insert into SubmittedAns (QuestionId, OptionTextId) VALUES (5, 1)    
    Insert into SubmittedAns (QuestionId, OptionTextId) VALUES (5, 2)

    Insert into SubmittedAns (QuestionId, OptionTextId) VALUES (2, 1)
    Insert into SubmittedAns (QuestionId, OptionTextId) VALUES (2, 1)


    select * from OptionText
    select * from SubmittedAns
    if (select count(OptionTextId) from SubmittedAns where QuestionId =5) = (select count(ot.OptionTextId) from OptionText as ot  where ot.IsRightAnswer = 1)
     select 1  as "isRight"
    else
     select 0  as "isRight"
KtX2SkD

关键材料请参阅第一行和最后一行:

SELECT CASE COUNT(*) WHEN 0 THEN 'Pass' ELSE 'Fail' END AS Boolean
FROM (
    SELECT *
    FROM #OptionText
    WHERE QuestionId = 5
      AND IsRightAnswer = 1
) AS OT
FULL OUTER JOIN #SubmittedAns AS SA ON OT.QuestionId = SA.QuestionId AND OT.OptionTextId = SA.OptionTextId
WHERE SA.QuestionId = 5
  AND OT.OptionTextId IS NULL -- This means some answers failed to be matched with your original questions/options, either because IsRightAnswer is zero, or because it doesn't exist in your questions/answers.

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何检查Bash中两个路径是否相等?

比较两个集合是否相等,无论它们中的项顺序如何

如何比较模板中的两个typedesc是否相等

是否可以将两个gobject与haskell-gi进行比较,找出它们是否相同?

如何将两个不同字典中的相同键值与百分比进行比较

将来自两个不同数据框的两列相加,其他所有列均相等

当它们的数据类型不同时,如何将SQL中的两个值与给定的十进制精度进行比较?

如何将一个SQL表分为两个表,以使它们的2个表的大小之和几乎相等

如何比较来自不同对象的两个日期值,设置它们的格式并测试是否相等?

如何检查两个不同类型的向量是否相等

如何将numpy数组的一行与所有其他行进行比较

如何比较两个DynamicJsonObjects以检查它们是否相等?

如何比较两个ctypes对象是否相等?

如何将两个MemoryStream与FluentAssertions进行比较

如何使用PowerShell比较两个文本文件以查看它们是否相等?

如何比较两个不同变量的类类型是否相等?

如何比较两个值并检查它们是否相似

比较来自不同表的两个值-MySQL

比较两个序列是否相等

提交表格前如何检查其他两个不同功能是否正确

如何根据列表中的两个不同值获得 2 个计数并检查两个计数是否相等?

如何将表的行与表的所有其他行进行比较?

如何将两个不同的 List 对象合并为一个 List 并对它们进行排序

SQL:存在的地方 -> 比较两个表并检查它们的行数是否相同

如何比较两个表并用其他表中的值替换空值

如何将每条 RDD 行与其他行进行比较?火花斯卡拉

如何将每一行与所有其他行进行比较,如果相同,我将连接到一个新的数据帧?Python

如何将一个表与另一个表连接起来,然后计算非空列并将它们按其他两个字段分组?

将两个单元格与 Excel 中的其他两个单元格进行比较