Mysql запрос с динамическими именами столбцов
У меня есть запрос mysql,который дает мне все результаты.
SELECT `respondents`.`session_id`, `answers`.`respondent_id`, `answers`.`question_id`, `respondents`.`center_id`, `respondents`.`survey_id`, `respondents`.`end_date`, `answervalues`.`spss_name`, `answervalues`.`answer_id`, `answervalues`.`value`, `answervalues`.`district_code`, `answervalues`.`county_code`, `answervalues`.`option`, `answervalues`.`is_answer`, ( SELECT COUNT(*) FROM answervalues WHERE answer_id = answers.id AND is_answer = 1) AS has_answer FROM `answervalues` INNER JOIN `answers` ON `answers`.`id` = `answervalues`.`answer_id` INNER JOIN `respondents` ON `respondents`.`id` = `answers`.`respondent_id` WHERE `respondents`.`center_id` IN ('1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '28', '29', '30', '32') AND `respondents`.`survey_id` IN ('2', '3', '4', '5', '6', '7', '8') AND `answers`.`question_id` IN ('8', '24', '58', '74', '83', '94', '106', '9', '25', '59', '75', '95', '107', '155', '10', '26', '60', '96', '108', '154', '156', '11', '27', '61', '76', '84', '97', '109', '14', '28', '62', '77') AND `respondents`.`end_date` IS NOT NULL AND `respondents`.`end_date` >= '2016-01-01 00:00:00' AND `respondents`.`end_date` <= '2016-05-31 23:59:59' ORDER BY `respondents`.`session_id` ASC, `respondents`.`survey_id` ASC, `answers`.`question_number` ASC, `answervalues`.`spss_name` ASC
Я хочу выполнить запрос, в котором результаты группируются по "responsivers.session_id", а столбцы создаются динамическими по результату поля [answervalues].[spss_name] и значения для строк - это [answervalues].[значение] или если оно равно нулю, то значения должны быть из [answervalues].[вариант]. Никаких вычислений для этих значений не требуется.
Спасибо вам всем.
Что я уже пробовал:
Создайте новую таблицу с результатами запроса и экспортируйте ее в csv-файл. Но так как данные слишком велики, то работать в excel невозможно.
Suvendu Shekhar Giri
Что вы до сих пор пытались сделать для достижения хорошо объясненного требования?
rmgrodrigues
Создайте новую таблицу с результатами запроса и экспортируйте ее в csv-файл. Но так как данные слишком велики, то работать в excel невозможно. Я не программист, Я дизайнер. Так что у меня нет идей...
Herman<T>.Instance
MYSQL PIVOT - это поисковый запрос Google, который вам нужен.