Использование Microsoft Sql 2000
У меня есть требование иметь возможность отправлять по электронной почте ежемесячный отчет с подробным описанием ряда событий.
(у меня есть подозреваемый бит электронной почты).
Среди данных, которые мне нужны для отправки по электронной почте, есть отчет о количестве определенных курсов, которые посещали люди.(пока все просто, пара внутренних объединений и Count () и Im там.)
Чтобы добавить к этому, некоторые из внутренних курсов, которые мы запускаем, имеют дату истечения срока действия, которая запрашивает курс для переподготовки.Я смог грубо получить данные, которые мне нужны, используя SQL-код для первой части и вставив набор результатов во временную таблицу, а затем перебирая каждую строку в этой таблице, получая идентификатор пользователя, запрашивая посещаемость курса пользователя,сортировка по дате, так что самая ранняя находится сверху, и просто берется запись TOP 1.
Это кажется настолько неэффективным, так что есть ли способ изменить свой текущий запрос, чтобы я мог также получитьдата самого раннего курса, который посетил пользователь?
т.е.
SELECT uName, COUNT(uId), [ not sure what would go in here] FROM UserDetails
INNER JOIN PassDates
ON PassDates.fkUser = uId)
GROUP BY uName, uId
где, например,
UserDetails
uId
uName
и
PassDates
fkUser
CourseId
PassDate
Надеюсь, я объяснил это достаточно хорошо, чтобы кто-то помог мне.