请教个有一定技术难度的问题
请教个有一定技术难度的问题
设计一个答题系统,需要对成绩进行保存,
题目共90题,在一个页面中同时显示,例:
编号    题目   分值
1      ####   2
2      ####   5
3      ####   3
分值由答题者自行填写,答题完毕后,点提交
在数据保存的时候,我需要以这样的格式进行保存,
人员编号  题目1 题目2 题目3 ...... 题目90   答题日期
   1001      2   5    3                  20071015
像这样的数据存储,不知道各位是如何处理的.
------解决方案--------------------用PB做很简单!
数据库部分做成行形式的,
界面用PB的自由风格dW,就行
------解决方案--------------------用什么都能做,数据库用列形式也行
------解决方案--------------------这个你可以写一个程序,然后在数据库中按照你上述得方式建立表,让程序自动插入近来就可以.
------解决方案--------------------请教个有一定技术难度的问题  
设计一个答题系统,需要对成绩进行保存,  
题目共90题,在一个页面中同时显示,例:  
编号    题目   分值  
1      ####   2  
2      ####   5  
3      ####   3  
-----------------------------------------------------
创建一个表TB1
create table tb1(人员编号 varchar(4), 编号 int ,题目 varchar(100),分值 int)
将对应考生的数据填入上表。
------------------------
分值由答题者自行填写,答题完毕后,点提交  
在数据保存的时候,我需要以这样的格式进行保存,  
人员编号  题目1 题目2 题目3 ...... 题目90   答题日期  
 1001      2   5    3                  20071015  
--------------------------
创建一个表TB2,
create table tb2(人员编号 varchar(4),题目1 int,题目2 int,...题目90 int,答题日期 datetime)
-------------------------------------------------------
可使用两种方法将数据插入到TB2种。
1。静态SQL
insert into tb2
select 人员编号,
 sum(case 编号 when 1 then 分数 else 0 end) '题目1',
 sum(case 编号 when 2 then 分数 else 0 end) '题目2',
 ...
 sum(case 编号 when 90 then 分数 else 0 end) '题目90'
from tb1  
group by 人员编号
2.动态SQL
declare @sql varchar(8000)  
set @sql =  'insert into tb2 select 人员编号'  
select @sql = @sql + ' , sum(case 编号 when  ''' + cast(编号 as varchar) + ''' then 数量 else 0 end) [题目' + cast(编号 as varchar) +  ']'  
from (select distinct 编号 from tb1) as a  
set @sql = @sql +  ' from tb group by 人员编号'  
exec(@sql) 
------解决方案--------------------行业转换比较的简单。