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

如何自动添加序号?
表1:
姓名 所在班级 性别
毛文杰 101 男
王元娇 101 女
王文勤 101 男
王定耀 101 男
叶晨晨 101 女
王宁宁 102 女
王娜 102 女
王倩如 102 女
王任宜 102 女
王嘉雄 102 男
卢贤磊 102 男
卢洁 102 女
叶玲霞 102 女

表2:

姓名 所在班级 序号 性别
毛文杰 101 1 男
王元娇 101 2 女
王文勤 101 3 男
王定耀 101 4 男
叶晨晨 101 5 女
王宁宁 102 1 女
王娜 102 2 女
王倩如 102 3 女
王任宜 102 4 女
王嘉雄 102 5 男
卢贤磊 102 6 男
卢洁 102 7 女
叶玲霞 102 8 女
如何把表1的形式转换成表2的形式?也就是根据所在班级,给各同学自动增加所在班级的序号。

------解决方案--------------------
建议用VBA来实现比较方便.

SQL语句可以实现,但效率比较差.

SQL code
select *,(select count(*) from 表1 where 所在班级=a.所在班级 and 姓名>=a.姓名) as 序号
from 表1 a
order by 所在班级,姓名

------解决方案--------------------
select *,(select count(*) from 表1 where 所在班级=a.所在班级 and 姓名>=a.姓名) as 序号
from 表1 a
order by 所在班级,姓名
------解决方案--------------------
表中没有唯一标识的字段,增加字段ID,类型自增,用SQL语句解决
select a.姓名,a.所在班级,a.性别,count(b.id) as 序号
from tt a inner join tt b on a.所在班级=b.所在班级 and a.id>=b.id
group by a.姓名,a.所在班级,a.性别