选择带有条件的SQL以计算不同的值

胜利者

我正在尝试对SQL进行查询,但是我被卡住了!

我有两个表:
表1:问题
表2:答案

对于每个问题,我可以有一个或多个来自不同用户的答案,但每个用户可以发表评论一次。
用户回答问题时,必须选择一种状态:
1)同意,2)不同意或3)讨论

因此,“问题”表具有以下所有问题:

Id  Question
1   q1
2   q2
3   q3

..“ Answer”表包含用户的所有答案,以及“ Question”表中的FK和带有用户选择状态的列。

Id  Answer  IdQuestion   Status
1   a1      1            1
2   a2      1            3
3   a3      2            2
4   a4      2            2
5   a5      3            1  

我需要什么:我需要选择所有问题,并且需要计算所有具有不同查询状态的问题。

示例:
问题1有两个答案,两个答案的状态不同。我只需要数数或输入一个数字便可以知道这个问题的答案各不相同。

问题2有两个答案,但是所有答案的状态相同。我不需要数数..或也许用其他数字来区别那些答案各不相同的问题。

而只有一个答案的问题我通常会选择它。

佐哈尔·皮莱德(Zohar Peled)

尝试这个:

select q.id, 
       question, 
       case when min(status) <> max(status) then 
          1 
       else 
          0 
       end as hasDifferentStatuses
from questions q
inner join answers a on(q.id = a.IdQuestion)
group by q.id, question

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章