У меня есть таблица - форма студента, и эта таблица содержит столбцы с различными вопросами, которые вы можете отфильтровать, чтобы получить ответ из столбца ответов. У меня возникла проблема, когда в столбце контрольных вопросов мне нужно задать 2 разных вопроса, чтобы получить ответ, состоящий из одной строки. Поэтому, если я задам вопрос A, я увижу ответ A в столбце, а вопрос B и ответ B отфильтрованы. Я хочу иметь возможность задать вопрос A (студент, зарегистрированный для сдачи экзамена), и ответ в столбце будет (Да), однако я также хочу одновременно задать вопрос B (дата экзамена), который будет указан в столбце ответа как ( 1/01/2019).
Проблема в том, что я задаю Вопрос A, я верну только 1 строку данных = (Да), но я хочу получить дату, когда они сдали экзамен, на который они зарегистрировались (01.01.2009).
Я пытался использовать подзапрос - я думаю, что это сработало, однако я искал только одного ученика, когда я пытаюсь найти больше учеников, для запуска которых требуется целая вечность, и мне нужно бросить выполнение, я думаю, что это больше для из-за того, что мой код написан плохо, или, возможно, подзапрос - не самый лучший способ сделать это
studentform as (select * from (select sf.studentid, sf.answer
FROM studentform sf
left join cohort c on sf.studentid = c.studentid
WHERE sf.formname = 'Student Exam Profile'
and sf.controlquestion = 'Date of exam'
and sf.title = 'Humanities, Sciences and Engineering'
and sf.section = 'Student information'
and sf.state = 'done'
and sf.studentid in
( select studentid from studentform
where controlquestion = 'Has student registered for exam?'
and answer = 'Yes'
)) x)
Я ожидаю получить дату 1/01/2019 из столбца ответов, т.е. дату, когда студент записал экзамен, как я уже задавал другой вопрос (зарегистрировался ли студент на экзамен? И ответ из ответа столбец «Да»)