SQL不同于不同的列

时间:2013-11-18 11:18:33

标签: sql sql-server sql-server-2008 group-by 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 

我想删除此查询中与 proposal_job_ref

字段具有相同值的记录

我尝试在选择之后添加不同但是这并不起作用,因为我认为它会根据work_ 日期删除重复的条目

有人可以帮我解决这个问题吗?

感谢。

更新

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行,因为它与第一行具有相同的 proposal_ref_code ,即p11111。

我正在使用SQL Server 2008

1 个答案:

答案 0 :(得分: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