日期:2014-05-18  浏览次数:20450 次

请教个有一定技术难度的问题
请教个有一定技术难度的问题


设计一个答题系统,需要对成绩进行保存,

题目共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)



------解决方案--------------------
行业转换比较的简单。