2011-01-10 2 views
1

Мне нужно использовать этот запрос, чтобы возвращать записи с самым последним NoteDate, вместо того, чтобы возвращать повторяющиеся записи, показывающие каждую дату ноты. я думал, что установка «MAX» перед t.noteate избавит вас от дубликатов записей, но они все равно появятся.Как мне избавиться от этих дубликатов записей и выбрать только самую высокую дату из каждой?

SELECT c.ContactId, MAX(t.notedate),c.Source, c.FirstName, c.LastName, c.Phone1, crCallResultCode, crTotalCallCount 

FROM   dbo.t_Contact c inner join t_notes t on c.contactid=t.contactid 

WHERE  

(c.Source IN ('Cabo10MC', 'BOWN10')) AND 
(c.crCallResultCode NOT IN ('V02', 'S01', 'CNC', 'R99','U01', 'U02', 'U03')) AND 
(DATEDIFF(ww, crNextCallDateTime, GETDATE()) = 0)OR (crNextCallDateTime = '1/1/1900')AND 
(c.Phone1 NOT IN 
          (SELECT  phone 
          FROM   lema.dbo.tswlivetours 
          WHERE  TourDate > getdate() AND TourStatus IN ('showed'))) 

group by c.ContactId, c.Source, c.FirstName, c.LastName, c.Phone1, crCallResultCode, crTotalCallCount,t.notedate 

ответ

1

Удалите t.noteate из группы по предложению.

...group by c.ContactId, c.Source, c.FirstName, c.LastName, c.Phone1, crCallResultCode, crTotalCallCount 
+0

безупречный, спасибо. это так просто! – user570457

Смежные вопросы