2015-06-11 87 views
0

的分鐘日期我有一個表ID,日期,XSQL更新一行ID

id   date   x 
1 2015-06-09 12:20:45 1 
1 2015-06-10 10:21:55 1 
2 2015-06-08 12:34:12 1 
2 2015-06-11 13:11:13 1 
3 2015-06-07 14:50:44 1 
3 2015-06-01 11:12:14 1 

現在我想增加x行與每個ID的最早日期。所以我想這個出來:

id   date   x 
1 2015-06-09 12:20:45 2 
1 2015-06-10 10:21:55 1 
2 2015-06-08 12:34:12 2 
2 2015-06-11 13:11:13 1 
3 2015-06-07 14:50:44 1 
3 2015-06-01 11:12:14 2 

這就是我嘗試:

 
UPDATE Table 
SET x=x+1 
where date= 
(SELECT MIN(date) 
FROM Table 
WHERE id=??) 

的?是我不知道該怎麼做的地方。此外,我得到一個錯誤,因爲我「不能在FROM子句中指定更新的目標表」。也許這是一個完全錯誤的方式,我希望有人能幫助我

回答

0

試試這個:

UPDATE Table 
SET x=x+1 
where date in 
(SELECT MIN(date) 
FROM Table 
group by id) 
0

組由ID獲取分鐘日期..

UPDATE Table 
SET x=x+1 
where date = 
(SELECT top 1 MIN(date) 
FROM Table 
group by id) 
0

您可以使用JOIN做和更新作爲

update table_name t1 
join(
    select id,min(date) as date from table_name 
    group by id 
)t2 on t1.id = t2.id and t1.date = t2.date 
set t1.x = t1.x+1 ; 

http://www.sqlfiddle.com/#!9/fec17/1