Соединение в одну таблицу дважды и подсчет записей - PullRequest
0 голосов
/ 26 апреля 2020

У меня есть 2 таблицы. Один хозяин, а другой - поиск. TblMstr и Cmaster

Tblmstr

Id  QuestionId   ChoiceId ChoiceMaster
1    2             1       Strongly Agree
1    3             2       Disagree
1    4             3       Agree
1    5             11       null
2    2             2       Disagree
2    3             5       Disagree
2    4             9       Agree
2    5             12       null

Cmaster

ChoiceId  QuestionId    ChoiceName
1             2         Strongly Agree
2             2         Disagree
3             2         Agree
4             3         Strongly Agree
5             3         Disagree
6             3         Agree     
7             4         Strongly Agree
8             4         Disagree
9             4         Agree  
10            5         Registered Nurse
11            5         Nurse Practitioner
12            5         Pharmacist

Мне нужно получить количество зарегистрированных медсестер по каждому вопросу, которые полностью согласны, не согласны и согласны. Аналогично для практикующих медсестер и фармацевтов.

1 Ответ

0 голосов
/ 26 апреля 2020

Хммм. , , Вы можете join дважды. Один раз, чтобы получить профессию и один раз, чтобы получить ответ на другие вопросы:

select co.choicename as occupation,
       sum(case when c.choicename = 'Strongly Agree' then 1 else 0 end) as cnt_strongly_agree,
       sum(case when c.choicename = 'Agree' then 1 else 0 end) as cnt_agree,
       sum(case when c.choicename = 'Disagree' then 1 else 0 end) as cnt_disagree
from Tblmstr m join
     Cmaster co
     on co.id = m.choiceid and co.questionid = 5 join
     Cmaster c
     on co.id = m.choiceid and co.questionid <> 5
group by co.choicename
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...