欲将如下相互表格转换:表格一:           第一学期   第二学期
姓名 性别 语文 数学   语文 数学  音乐 .....
张三  男   85   70
李四  女   89   90
........表格二:姓名 性别 学期  科目  得分 
张三  男   一   语文  85
张三  男   一   数学  70
张三  男   二   语文  85
张三  男   二   数学  70
李四  女   一   语文  89
李四  女   一   数学  90
李四  女   二   语文  89
李四  女   二   数学  90应该如何处理?谢谢

解决方案 »

  1.   

    这个转换起来应该不难,不过都要用到中间变量,一个DataSet,比如把第一种格式转换为第二种:
    先把第一种的数据读入DataSet,例如:
         第一学期   第二学期
    姓名 性别 语文 数学   语文 数学  音乐 .....
    张三  男   85   70
    然后做两个For循环:
    For 学期1 TO 学期2
       For 科目1 TO 科目n
         张三  男   学期   科目  成绩第二种转化为第一种差不多,只是把姓名作为PK键。     
      

  2.   

    不好意思,没说清楚,是用其中一张表生成另外一张表,反过来也一样俺比较笨,能否麻烦把具体的SQL语句写出来,多谢
      

  3.   

    表格一恐怕不是直接对应的一个表吧,我想应该是通过处理得到的
    这个没有什么转换的,重要的是你的数据源,你数据库中是个什么结构,来分别实现不同样式的DataGrid
      

  4.   

    表格一是一张Excel表格,我想按表格二的格式导到另一张表格,然后再经过统计分析后重新处理后生成类似表格一的第三张表格
      

  5.   

    你的第三张表格是什么?Excel?DataGrid?
      

  6.   

    这是第一个转换成第二个:
    表格一:           第一学期   第二学期
    Name Sex   Yw1  Sx1   Yw2 Sx2  Yy2 .....
    张三  男   85   70
    李四  女   89   90select Name,Sex,'一' as Xq,'语文' as Km,Yw1 as Df from Table1
    union
    select Name,Sex,'一' as Xq,'数学' as Km,Sx1 as Df from Table1
    union
    select Name,Sex,'二' as Xq,'语文' as Km,Yw2 as Df from Table1
    union
    select Name,Sex,'二' as Xq,'数学' as Km,Sx2 as Df from Table1
    union
    select Name,Sex,'二' as Xq,'音乐' as Km,Yy2 as Df from Table1第二个转换成第一个时,就是生成交叉表了,你查询SQLServer的帮助,标题是"交叉数据报表";
    要是字段数是动态的,就需要用游标了