이번이 처음입니다. 이런 식으로하려고합니다. 그래서 나와 함께하시기 바랍니다. 이것은 MySql에 있습니다.MySql - 열을 행으로 변환하여 보고서를 생성하는 SQL 쿼리 또는 프로 시저
어떤 학생들이 어떤 주제와 날짜를 완료했는지보고하기 위해 보고서를 작성하려고합니다.
이것은 내가
select u.email,t.topic_name,tu.date_created as 'date completed' from topic_user tu join topic t ON tu.topic_id = t.topic_id join user u ON tu.user_id = u.user_id
이
email | topic_name | date completed [email protected] | ABC | 03/01/2012 [email protected] | DEF | 03/02/2012 [email protected] | ABC | 03/08/2012 [email protected] | GHI | 03/08/2012 [email protected] | ABC | 03/02/2012 [email protected] | XYZ | 03/10/2012
내가 보고서를 생성 할 방법과 같은 결과를 반환하는 실행 현재 쿼리 열 머리글 및 날짜 등의 항목 이름이된다 값으로 완료했습니다.
email | ABC | DEF | GHI | JKL | XYZ [email protected] | 03/08/2012 | 03/02/2012 | 03/08/2012 | null | null [email protected] | 03/02/2012 | null | null | null | 03/10/2012
주의 사항 :
1) 모든 항목 이름은 주제 테이블에서 올 것 - 그들은 학생들이 완료되지 않은 경우에도 - 그 - 값이 나타납니다 [email protected] 학생의 경우;로서 null
2) 주제 ABC를 두 번 연구했지만 보고서는 최신 날짜를 받아야합니다.
이 작업을 수행하려면 저장 프로 시저를 작성해야합니다. 어쩌면 먼저 주제 테이블에서 모든 주제 이름을 가져온 다음 임시보기를 작성하여 채 웁니다.
제공 할 수있는 도움에 감사드립니다. 감사합니다.
주제 이름이 고정되어 있습니까? 그들은 SQL 안에 하드 코드 될 수 있을까? 이메일 당 주제 이름 당 date_completed가 하나만 있다는 보장이 있습니까? –
예 코스가 작성되면 주제 테이블에 이름이 채워진다는 의미에서 주제 이름이 고정됩니다. 필요한 경우 새로운 주제가 추가됩니다.아니요. 언급 한대로 동일한 학생이 동일한 주제를 여러 번 공부할 수 있지만 보고서에는 마지막 날짜가 표시되어야합니다. [email protected] 학생을 보시면 ABC라는 주제를 두 번이나 끝 냈지만 보고서에는 마지막 날짜가 표시됩니다. 감사합니다 – Gublooo