首页 新闻 赞助 找找看

SQl 更新操作相同列最新时间

0
悬赏园豆:20 [已解决问题] 解决于 2016-12-30 10:47

如下图查询界面,有两行Nname为Test1的数据,那么需要将Test1对应uptime的数据更新为最新的,即IDD为105的uptime应为2016-12-30 09:07:16.503

同理:对于Nname重复列Test2,IDD为106的uptime应为2016-12-30 09:07:16.503

求解:

 

 

SQL
郎中令的主页 郎中令 | 菜鸟二级 | 园豆:244
提问于:2016-12-30 09:15
< >
分享
最佳答案
0

SELECT T.NNMAE,MAX(UPTIME) FROM IBBC.DBO.TABLE_1 AS T GROUP BY T.NNMAE

收获园豆:10
ensleep | 小虾三级 |园豆:1682 | 2016-12-30 09:19

我最后的目的是8条数据不变,只是对于重复数据的uptime栏位是最新的时间

郎中令 | 园豆:244 (菜鸟二级) | 2016-12-30 09:37

@郎中令: 

SELECT A.IDD,A.NNMAE,B.UPTIME FROM IBBC.DBO.TABLE_1 A,

(

SELECT T.NNMAE,MAX(UPTIME) FROM IBBC.DBO.TABLE_1 AS T GROUP BY T.NNMAE

)  B

WHERE A.NNMAE=B.NNMAE

ensleep | 园豆:1682 (小虾三级) | 2016-12-30 09:56

还不能破坏表中的数据,也就是说不能使用update,据说可以根据Row_number() OVER() 函数来处理

郎中令 | 园豆:244 (菜鸟二级) | 2016-12-30 09:56

@ensleep: 谢谢提供思路

郎中令 | 园豆:244 (菜鸟二级) | 2016-12-30 10:48
其他回答(1)
0

update table set upate_time='123' where master_id in(SELECT idd FROM table group by Nname having count(Nname)>1 );

可能有中文字符问题,手打的你注意一下,123就设置为最新的时间就行了

收获园豆:10
让我发会呆 | 园豆:2929 (老鸟四级) | 2016-12-30 10:10

@让我发会呆: 谢谢

支持(0) 反对(0) 郎中令 | 园豆:244 (菜鸟二级) | 2016-12-30 10:49
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册