Таким образом, у меня есть следующий запросУдаление дублей из запроса
SELECT r.userId, r.programmeId, u.email, u.firstName, u.lastName, u.profileId, tblProgrammes.name, u.storeId, r.dateEnded AS lastPass, r.dateExpired
FROM tblUserRepeatHistory AS r INNER JOIN
tblUsers AS u ON r.userId = u.id INNER JOIN
tblProgrammes ON r.programmeId = tblProgrammes.id
WHERE (r.dateExpired IS NOT NULL) AND (u.storeId = @storeId)
GROUP BY r.userId, r.programmeId, u.email, u.firstName, u.lastName, u.profileId, tblProgrammes.name, u.storeId, r.dateEnded, r.dateExpired, r.id
HAVING (DATEDIFF(D, MAX(r.dateExpired), GETDATE() + 31) >= 0)
который возвращает следующие данные
11 22 [email protected] store-mgr jamie2 1 Deli Food Service 1 5 04/02/2011 09:36:11 10/05/2011 09:36:11
11 22 [email protected] store-mgr jamie2 1 Deli Food Service 1 5 04/02/2011 09:36:11 10/05/2011 09:36:11
11 22 [email protected] store-mgr jamie2 1 Deli Food Service 1 5 11/05/2011 09:44:36 10/07/2011 09:44:36
11 23 [email protected] store-mgr jamie2 1 Deli Food Service 2 5 11/05/2011 10:12:50 16/06/2011 10:12:50
я в основном только одна запись, возвращаемые для каждого пользователя и программы, где совсем недавно добавленным нужно вернуться, так что я думаю, MAX (dateExpired). Таким образом, этот запрос т.е. должен возвращать только две записи
11 22 [email protected] store-mgr jamie2 1 Deli Food Service 1 5 11/05/2011 09:44:36 10/07/2011 09:44:36
11 23 [email protected] store-mgr jamie2 1 Deli Food Service 2 5 11/05/2011 10:12:50 16/06/2011 10:12:50
Не думайте, что это будет сделано, потому что некоторые записи отличаются друг от друга, но я по-прежнему только одна запись, возвращенная для каждого идентификатора пользователя и идентификатора программы – StevieB