我有3张桌子:
USER:
问题:
解答:
1-I需要计算"正确答案的百分比"对于每个答案。
2-I需要计算"正确答案的百分比"对于每个答案 - 对于公司" A",公司" B" ...(将是5家公司)
解决问题1:
select
count(DISTINCT ANSWERS.USERID) as TOTAL,
sum(case when ANSWERS.AFQ1 = QUESTIONS.CA AND ANSWERS.LA = 21 AND QUESTIONS.QUESTIONID = 1 then 1 else 0 end) AT1,
sum(case when ANSWERS.AFQ2 = QUESTIONS.CA AND ANSWERS.LA = 21 AND QUESTIONS.QUESTIONID = 2 then 1 else 0 end) AT2,
(....until 20)
from ANSWERS, QUESTIONS
Where ANSWERS.LA = 21
有了这个,我得到了一个带有总答案的表(已完成= 21) - 和AT1,AT2,AT3 ..每个总数"正确答案"对于每个答案。
然后我可以做一个AT1 / TOTAL来获得所有%。
问题1没问题。
但我如何才能对问题2做同样的事情?
TKS!
答案 0 :(得分:0)
select
COMPANY,count(DISTINCT ANSWERS.USERID) as TOTAL,
sum(case when ANSWERS.AFQ1 = QUESTIONS.CA AND ANSWERS.LA = 21 AND QUESTIONS.QUESTIONID = 1 then 1 else 0 end) AT1,
sum(case when ANSWERS.AFQ2 = QUESTIONS.CA AND ANSWERS.LA = 21 AND QUESTIONS.QUESTIONID = 2 then 1 else 0 end) AT2,
(....until 20)
from ANSWERS a, QUESTIONS
join user u on u.userid = a.userid
Where ANSWERS.LA = 21
group by u.COMPANY
提示1: join
,其中USER表位于Answer.Userid = User.userid
提示2:使用GROUP BY
进行公司
注意:我的语法可能有误。我使用过SQL服务器语法。