2014-03-19 235 views
0
Task Status    Date     Flag 

a Complete February 21, 2014 
b In Progress February 11, 2014 
c Complete February 11, 2014 
d Complete February 1, 2014 
a In Progress February 30, 2014   To remove 
c Not started February 12, 2014   To remove 
b Complete February 13, 2014 

我需要評論爲所有有記錄(「要刪除」)更新上表中標誌列(進行中/未開始) 對於同一任務,(相同的任務) 每隔一個狀態,除完成 例如: 任務「a」顯示兩次(或多次,但在我的示例中只顯示兩次)。 它在2月21日第一次顯示完成狀態。 第二次在晚些時候(2月30日)與進行中顯示。 所以第二次出現必須標記爲刪除。Update語句

如果我們有「一」,「未啓動」,2月2日 - 這將被保留。

ps。日期在數據庫加載日期類型

+1

發佈你的一些代碼,你到現在爲止試過了什麼? –

+0

你有試過什麼嗎? – Jerry

+0

當一個任務有第二個日期,那麼降序日期的列必須被標記爲false?因爲評論將會刪除第二個(降序日期)。對? –

回答

0

試試下面的代碼,我認爲表名tblTask​​。

With CTE as 
(
select task,status,DATE,flag,RANK() over (partition by task order by date asc, status asc) as Rnk 
from tblTask 
), CTE1 as 
(
select * from CTE where 
Rnk = 1 and status = 'Complete' 
), CTE2 as 
(
select tblTask.* from CTE1 
left join tblTask on CTE1.task = tblTask.task 
where tblTask.status <> 'Complete' 
) 
update CTE2 set flag = 'To remove' 

將嘗試最短的方法。