请教个有一定技术难度的问题
请教个有一定技术难度的问题
设计一个答题系统,需要对成绩进行保存,
题目共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)
------解决方案--------------------行业转换比较的简单。