Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- select
- a.form_id,
- a.form_title,
- a.question_id,
- a.question_title,
- a.option_id,
- a.option_title,
- a.option_order,
- a.year,
- #b
- b.response_date,
- CASE WHEN b.question IS NULL THEN 0 ELSE 1 END as 'response_count' from
- (
- select
- z.*,
- y.year
- from (
- select DISTINCT q.id as 'question_id',
- q.title_en as 'question_title',
- q.deleted_at,
- o.id as 'option_id',
- o.title_en as 'option_title',
- o.order as 'option_order',
- f.id as 'form_id',
- f.title_en as 'form_title'
- from questions q
- left join sections s
- on q.section_id = s.id
- left join pages p
- on s.page_id = p.id
- left join forms f
- on p.form_id = f.id
- left join options o
- on o.question_id = q.id
- left join question_types qt
- on q.question_type_id = qt.id
- where
- f.id IN (196)
- and
- qt.type IN ('radio')
- and
- q.deleted_at is null
- ) z
- cross join (
- select distinct YEAR(fr.submitted_at) as 'year'
- from form_responses fr
- where fr.submitted_at IS NOT NULL
- AND YEAR(fr.submitted_at) > '2017'
- ) y
- ) a left join
- #b
- (
- select
- f.id as 'form_id',
- q.id as 'question_id',
- o.id as 'option_id',
- q.title_en as 'question',
- o.title_en as 'response',
- o.order as 'option_order',
- fr.submitted_at as 'response_date'
- from question_responses qr
- left join options o
- on qr.value = o.id
- left join form_responses fr
- on qr.form_response_id = fr.id
- inner join questions q
- on qr.question_id = q.id
- left join question_types qt
- on q.question_type_id = qt.id
- left join sections s
- on q.section_id = s.id
- left join pages p
- on s.page_id = p.id
- left join forms f
- on p.form_id = f.id
- where
- f.id IN (196)
- and
- qt.type IN ('radio')
- and
- q.deleted_at is null
- order by option_order
- ) b on
- b.question_id = a.question_id AND
- b.option_id = a.option_id AND
- b.form_id = a.form_id AND
- a.year = YEAR(b.response_date)
- ORDER BY
- a.form_id,
- a.option_id,
- b.response_date
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement