Это первый раз - я пытаюсь сделать что-то подобное - так что, пожалуйста, потерпите меня.Это на 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
abc@gmail.com | ABC | 03/01/2012
abc@gmail.com | DEF | 03/02/2012
abc@gmail.com | ABC | 03/08/2012
abc@gmail.com | GHI | 03/08/2012
def@gmail.com | ABC | 03/02/2012
def@gmail.com | XYZ | 03/10/2012
Чтобы создать отчет, нужно иметь имена тем в качестве заголовков столбцов и дату, когда они завершили его в виде значений
email | ABC | DEF | GHI | JKL | XYZ
abc@gmail.com | 03/08/2012 | 03/02/2012 | 03/08/2012 | null | null
def@gmail.com | 03/02/2012 | null | null | null | 03/10/2012
Несколько вещей, на которые следует обратить внимание:
1) Все названия тем будут взяты из таблицы тем - даже если они не были заполнены учащимися - значение должно быть нулевым
2) В случае студента abc@gmail.com - он дважды изучил тему ABC - но в отчете должна быть указана самая поздняя дата.
Полагаю, мне нужно написать хранимую процедуру, чтобы выполнить это.Например, сначала вытащите все названия тем из таблицы тем, а затем создайте временное представление и заполните его.
Буду признателен за любую помощь, которую вы сможете оказать.Большое спасибо