Проверить записи на изменение значений

SELECT model.case_part_id, model.case_part_question_id, answers.question_value,
CASE WHEN answers.question_value <> model.question_value THEN true ELSE false END AS is_changed
FROM (
SELECT case_part_question.case_part_id, case_part_question.case_part_question_id, treatment_day_question.question_value
FROM treatment_day_question
LEFT JOIN case_part_question ON (treatment_day_question.case_part_question_id = case_part_question.case_part_question_id)
LEFT JOIN case_part ON (case_part_question.case_part_id = case_part.case_part_id)
WHERE treatment_day_id = 145 AND case_part.active AND case_part.is_show_in_settings
ORDER BY case_part_id, case_part_question.case_part_question_id
) model
LEFT JOIN (
SELECT * FROM (
VALUES (1, 99, 0),(1, 168, 1),(1, 202, 0),(2, 6, 22),(2, 10, 1),(2, 11, 0)
) as a (case_part_id, case_part_question_id, question_value)
) answers
ON (model.case_part_id = answers.case_part_id AND model.case_part_question_id = answers.case_part_question_id)
;

Оставить комментарий