Это первый раз - я пытаюсь сделать что-то подобное - так что терпите меня. Это на MySql.
Я пытаюсь создать отчет, чтобы узнать, какие студенты завершили какие темы и в какие даты.
Это текущий запрос, который я выполняю
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) Все названия тем будут взяты из таблицы тем - даже если они не были заполнены учащимися - значение должно отображаться как null
2) В случае студента [email protected] - он дважды изучал тему ABC - но в отчете должна быть указана самая последняя дата.
Думаю, для этого мне нужно написать хранимую процедуру. Например, сначала вытащите все названия тем из таблицы тем, а затем создайте временное представление и заполните его.
Буду признателен за любую помощь, которую вы можете предоставить. Большое спасибо