RenId RenMing RenParentId
3 王一 9
4 王二 9
5 张一 10
6 张二 10
10 张父 15
15 张父父 Null
9 王父 Null
1 怎么可以输出下面的结果(按照它的格式,姓王的有三个,张的四个)?
项目 人数
王 3
张 4
2 不打乱顺序按照ID重新排序,排序以后在前面加上1,2,3,4,5……---
RenId RenMing RenParentId
3 王一 9
4 王二 9
5 张一 10
6 张二 10
10 张父 15
15 张父父 Null
9 王父 Null
if object_id('test') is not null
drop table test
go
create table test(Renid int,RenMing nvarchar(3),RenParentId int)
insert into test select 3,N'王一',9
union all select 4,N'王二',9
union all select 5,N'张一',10
union all select 6,N'张二',10
union all select 10,N'张父',15
union all select 15,N'张父父',null
union all select 9,N'王父',null
1.
select left(RenMing,1) as 项目,count(RenMing) 人数 from test group by left(RenMing,1)
2.
select id=(select count(1) from test where Renid<t.Renid)+1,* from test t
drop table test
go
是不是要这样的结果啊?
RenId RenMing RenParentId
1 王一 9
2 王二 9
3 张一 10
4 张二 10
5 张父 15
6 张父父 Null
7 王父 Null
如果是,就用update语句
update test set renid=(select count(1) from test where renid<t.renid)+1 from test t
就是四楼的这个意思
这两天出去才回来,谢谢大家的帮忙