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