У меня есть базовая таблица участников и ответов, со следующей структурой:проблемы SQL-запрос: Как объединить два список
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 и QuestionNum 4 до 6 должны присоединиться к вопросу на QuestionId's из участников-участников. Я предполагаю, что мне нужно использовать ROW_NUMBER() в подзапросе из BusUnitQuestions, чтобы присоединиться к моей таблице ответов, но после этого я потерялся.
Если меня кто-нибудь понимает, есть ли у вас какие-либо предложения?
Ниже приведен пример установки. В этом случае участник ответил на 5 вопросов (от 1 до 5). Первые три из этих вопросов задаются отделом участника, а последние два выбраны участником. На самом деле для отдела и участника на выбор существует более 5 вопросов. Мне нужно подключиться к таблице «Вопросы» в таблицу «Ответы», используя номера строк в «Десятичные вопросы» и «Участники», соответствующие «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)
ли вы предоставить некоторые примеры DDL? – codingbadger
Чтобы добавить запрос Barry, отправьте DDL (CREATE TABLE statements), некоторые примеры данных для каждой таблицы (надеюсь, как заявления INSERT) и ожидаемые результаты.Это намного проще для людей, чтобы ответить на такие вопросы, если мы можем написать фактический SQL против базы данных и отладить его, прежде чем положить его в ответ –
Я добавил скрипт установки. – ProfK