日期:2014-05-16  浏览次数:20982 次

求一句sql(另外问一下,为什么我有分不能给,只能给10分)
如下表T,2个字段
id   index
1       1  
2       2
3       2  
4       3
5       3  
6       4
7       5
8       6
9       6
请教,如何用一句sql把id=9的index的值加上index字段的重复的纪录数值
比如这里是2,3,6重复,那就是加上3


------解决方案--------------------
select *,index+
(select count(*) from (select index from tt group by index having count(*)> =2))
from tt where id=9
------解决方案--------------------
--如果仅仅是查询,按楼上处理即可,但是如果要更新,则需要用如下两个SQL处理:


--重复次数保存到新表中
select count(*) as cnt
into 新表名
from (SELECT T.index FROM T GROUP BY T.index having count(*)> 1) AS A


--更新id=9的index为index+重复记录次
update T set index=index+dcount( "* ", "新表名 ")
where id =9