求一句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