テーブルをフラット化する必要がありますが、ここが難しい部分です。クロマンは動的であり、新しい ID を含む新しいレコードが追加されたときにクエリが機能するはずです。
これは私の作業クエリです(これは実際には何百もの値です):
SELECT *
FROM (select qv.respnr, sq.question_id, qv.question_value
from survey_question sq, question_values qv
where qv.question_id = sq.question_id
and sq.survey_id = 1
order by qv.respnr, page, ranked)
PIVOT (
MAX(question_value) --<-- pivot_clause
FOR question_id --<-- pivot_for_clause
IN (346 as c346,347 as c347)
)
を次のようなものに置き換えたいIN (346 as c346,347 as c347)
:
SELECT mq.question_id
FROM meta_question mq, survey_question sq2
WHERE sq2.survey_id = 1
AND mq.question_id = sq2.question_id
ORDER BY page, ranked
これを行う方法はありますか?
IN を単純に select ステートメントで指定できないことに気付いたので、これは機能しません。
IN (SELECT mq.question_id
FROM meta_question mq, survey_question sq2
WHERE sq2.survey_id = 1
AND mq.question_id = sq2.question_id
ORDER BY page, ranked)