누군가 도움이 될지 궁금하게 생각하는 SQL 문은 저를 슬프게합니다.MySQL 피벗 테이블을 사용할 때의 동적 AS
MAX 사례()를 사용하여 피벗 테이블로 작동하는 나의 문장은 올바르게 작동하지만 수동으로 AS 열 이름을 적용하고 있습니다.이 작업은 동적으로 수행 할 수 있습니까?
다음은 현재 나의 진술입니다.
SELECT
u.prefix AS 'Title',
u.forename AS 'Forename',
u.surname AS 'Surname',
u.email AS 'Email Address',
u.update_time AS 'Register Date',
eg.name AS 'Event Group Registered',
e.name AS 'Session Registered',
MAX(CASE WHEN uv.user_type_variables_id = 1 THEN uv.value ELSE NULL END) AS 'Question2',
MAX(CASE WHEN uv.user_type_variables_id = 2 THEN uv.value ELSE NULL END) AS 'Question2',
MAX(CASE WHEN uv.user_type_variables_id = 3 THEN uv.value ELSE NULL END) AS 'Question1',
MAX(CASE WHEN uv.user_type_variables_id = 4 THEN uv.value ELSE NULL END) AS 'Question2',
MAX(CASE WHEN uv.user_type_variables_id = 5 THEN uv.value ELSE NULL END) AS 'Question1',
MAX(CASE WHEN uv.user_type_variables_id = 6 THEN uv.value ELSE NULL END) AS 'Question2'
FROM tbl_event_attendees AS ea
LEFT JOIN tbl_user AS u ON ea.user_id = u.id
LEFT JOIN tbl_event AS e ON ea.event_id = e.id
LEFT JOIN tbl_event_groups AS eg on e.group_id = eg.id
LEFT JOIN tbl_user AS u2 ON ea.guest_of_user_id = u2.id
LEFT JOIN tbl_user_variables AS uv on u.id = uv.user_id
WHERE ea.event_id =6
GROUP BY ea.id
내 테이블은 변수 테이블을 포함하여 몇 개의 테이블을 함께 결합합니다.이 테이블에서는 여러 행이이 테이블의 특정 행에 적용됩니다.
그래서 열의 이름이 'Question1'이 아니라 'uv.value
'에 적용되는 인접한 열 'name'이 필요합니다.
MAX(CASE WHEN uv.user_type_variables_id = 14 THEN uv.value ELSE NULL END) AS uv.name,
누구에게 제안 할 수 있습니까? 당신 여부를 위해 작동하지만, 단지 그것을 시도
당신은 테이블에 대한 자세한 내용을 제공해야합니다. – Blank
안녕하세요, 내 성명서를 조금 넓혔습니다. – gsusonline