SQL Distinct на другой столбец

У меня есть следующий запрос

select t1.work_date, t1.proposal_job_ref, t1.timesheet_time, t2.proposal_title

from dbo.timesheet_entries t1
inner join dbo.proposal t2
    on t1.proposal_job_ref = t2.proposal_ref_code

inner join dbo.consultant t3
    on t3.consultant_id = t1.consultant_id

where t1.consultant_id = 2
and t1.work_date between '01/09/2013' and '30/09/2013'

order by t1.work_date 

Я хотел бы удалить записи из этого запроса, которые имеют одинаковое значение для поля offer_job_ref

Я попытался добавить разные после выбора, однако это не работает, так как я думаю, что он удаляет дубликаты записей на основе work_date

Может кто-нибудь, пожалуйста, помогите мне с этим?

Благодарю.

ОБНОВИТЬ

work date    proposal_ref_code    timesheet_time    proposal_title
01/09/2013   p11111               8                 Web App Development
02/09/2013   p22222               4                 Mobile Development
03/09/2013   p11111               6                 Web App Development
04/09/2013   p33333               8                 Database Design

Используя приведенную выше таблицу, после того, как мой запрос будет выполнен, я бы хотел, чтобы 3-я строка была удалена, потому что она имеет тот же предложение_ref_code, что и первая строка, т.е. p11111.

Я использую SQL Server 2008

1 ответ

Пожалуйста, попробуйте, я надеюсь, что это полезно для вас

WITH CTE AS
(
SELECT *,RN=ROW_NUMBER() OVER (PARTITION BY work_date ORDER BY work_date DESC) FROM tablename 
)
delete from CTE where RN>1
Другие вопросы по тегам