У меня есть базовая таблица участников и ответов со следующей структурой:
ParticipantId, BusUnitId, QuestionNum, Answer.
В этой таблице QuestionNum варьируется, скажем, от 1 до 6. У меня также есть две другие таблицы, которые как бы связывают QuestionNum с фактической таблицей вопросов, BusUnitQuestions и ParticipantQuestions. Для каждого QuestionNum я должен получить фактический текст вопроса, основанный на QuestionId.
BusUnitId, QuestionId
ParticipantId, QuestionId
Теперь предположим, что записи с QuestionNum от 1 до 6. BusUnitQuestions имеет 3 записи, поэтому QuestionNum с 1 по 3 должен присоединиться к Вопросу по QuestionId из BusUnitQuestions, а вопрос с 4 по 6 должен присоединиться к Вопросу по QuestionId из ParticipantQuestions. Я предполагаю, что мне нужно использовать ROW_NUMBER () в подзапросе BusUnitQuestions, чтобы присоединиться к моей таблице ответов, но после этого я потерялся.
Если кто-то меня понимает, у вас есть какие-либо предложения?
Ниже приведен пример установки. При этом участник ответил на 5 вопросов (с 1 по 5). Первые три из этих вопросов задаются отделом участника, а последние два выбираются участником. На самом деле существует более 5 вопросов для отдела и участника на выбор. Мне нужно присоединить таблицу вопросов к таблице ответов, используя номера строк в DepartmentQuestions и ParticipantQuestions, соответствующие QuestionNum в таблице ответов.
create table Answers (AnswerId int identity(1,1), ParticipantId int, DeptId int, QuestionNum int, AnswerScore int)
create table Dept_Question (DqId int identity(1,1), DeptId int, QuestionId int)
create table Particpant_Question (PqId int identity(1,1), ParticipantId int, QuestionId int)
create table Questions (QuestionId int identity(1,1), QuestionText nvarchar(200))
insert Questions (QuestionText) values ('What is a duck?')
insert Questions (QuestionText) values ('How much do you weigh?')
insert Questions (QuestionText) values ('Why does orange fit?')
insert Questions (QuestionText) values ('Who pokes the fish?')
insert Questions (QuestionText) values ('Why no cow bells?')
insert Dept_Question (DeptId, QuestionId) values (3, 3)
insert Dept_Question (DeptId, QuestionId) values (3, 4)
insert Dept_Question (DeptId, QuestionId) values (3, 1)
insert Particpant_Question(ParticipantId, QuestionId) values (1, 2)
insert Particpant_Question(ParticipantId, QuestionId) values (1, 4)
insert Answers (ParticipantId, DeptId, QuestionNum, AnswerScore) values (1, 3, 1, 63)
insert Answers (ParticipantId, DeptId, QuestionNum, AnswerScore) values (1, 3, 2, 89)
insert Answers (ParticipantId, DeptId, QuestionNum, AnswerScore) values (1, 3, 3, 44)
insert Answers (ParticipantId, DeptId, QuestionNum, AnswerScore) values (1, 3, 4, 54)
insert Answers (ParticipantId, DeptId, QuestionNum, AnswerScore) values (1, 3, 5, 72)