我提一个思路,看看是否可行:<br>1、客户在录入时你要根据它的“一班”、“二班”、“三班”...设一ID,就用你的例子来说,完成后应该类似下面的样子:<br>张三 一班 1<br>李四 二班 2<br>田五 一班 1<br>小明 一班 1<br>小花 三班 3<br>小张 二班 2<br>小李 二班 2<br>小黄 三班 3<br>翠花 一班 1<br>桂花 一班 1<br>菊花 三班 3<br>桃花 一班 1<br>小王 一班 1<br>2、保存时除了原有的数据,再新建一临时表,列数为3*2(即临时表的列数应该为:Max(ID)*2),并把ID为1的数据(含姓名、班级)存入第1、2列,ID为2的数据存入第3、4列...,这个规律应该不难找的,类似于下面的方法:<br>for i := 1 to Max(ID) do<br> strSQL := 'Insert Into tmp (col' + IntToStr(2 * i - 1) + ', col' + IntToStr(2 * i) + ') Select xm, bj From a Where ID = ' + IntToStr(i);<br>3、把临时表的数据显示给用户看<br>关键的步骤有2个:一是创建临时表,此表的字段数应为Select Max(ID) From a 的2倍,为方便插入数据,建议字段名命名为类似于col1、col2、col3...coli这样的;<br>二是插入数据,方法如上,当然这些步骤也可以用存储过程来完成,这样效率更高,实现的思路应该差不多。