I think 这是一个关于“交叉数据报表”的问题,我不知道这个描述准不准确,下面再来补充下吧!!
举个例子,在数据库有一个学生成绩表:
----------------------
姓名   课程    成绩
----------------------
wwn    语文    80
wwn    数学    75
wwn    英语    90
gbb    语文    70
gbb    数学    81
hanxi  语文    100
....
----------------------我现在需要这样,做一个aspx页面
-----------------------------------
姓名    语文    数学    英语 ...
-----------------------------------
wwn     80      75      90
gbb     70      81
hanxi   100
....
-----------------------------------
在这个页面上不光是要显示,而且还要在这个页面上真接录入成绩,请各位仁兄指教,谢谢!!!

解决方案 »

  1.   

    你这个表设计得有问题吧。
    我想表结构设计为:
    用户,语文,数学,英语....是不是好一些,
    然后绑定到dataGrid控件进行编辑即可
    datagrid控件可以即时添加新记录,更改和删除记录
      

  2.   

    哈,楼上显然对数据库研究不够多,如果之后客户要求再加其它科目,你是否还需要去修改数据库的表结构呢?楼主的表设计是对的,显示的话,需要用编程通过循环把表数据存到下面结构的DataTable里
    姓名    语文    数学    英语 ...
    -----------------------------------
    wwn     80      75      90
    gbb     70      81
    hanxi   100然后用DataGrid绑定显示出来。若是修改保存,则还需要反向的做一遍处理,才行。
      

  3.   

    select 姓名,语文,数学,英语 
    from (
           (select distinct 姓名 from 学生成绩表) as a
            left join (select  姓名, 成绩 from 学生成绩表 where 课程='语文' ) as b
            on  a.姓名=b.姓名
            left join (select  姓名, 成绩 from 学生成绩表 where 课程='数学' )as c
            on a.姓名=c.姓名
            left join (select  姓名, 成绩 from 学生成绩表 where 课程='英语' )as d
            on a.姓名=d.姓名
          )
    这样应该可以的,你试试看