select a.name,a.chengji as 高数,b.chengji as 英语,c.chengji as 理论物理 from t_student a,t_student b,t_student c where a.name=b.name and b.name=c.name and a.kecheng='高数' and b.kecheng='英语' and c.kecheng='理论物理'

解决方案 »

  1.   

    用这个sql语句了,呵呵,没问题的!
    :)
    select a.name as 姓名,a.chengji as 高数,b.chengji as 英语,c.chengji as 理论物理 from t_student a,t_student b,t_student c where a.name=b.name and b.name=c.name and a.kecheng='高数' and b.kecheng='英语' and c.kecheng='理论物理'
      

  2.   

    首先,你的表设计的不是很合理,存在大量的重复数据,你最好分分成两个表或三个表,也可以在一个表里,不过你可以这样:
    Fields: name 课程1 课程2 课程3 ...
      

  3.   

    select name,
    sum(case kecheng='语文' then chengji end ) '语文',
    sum(case kecheng='数学' then chengji end ) '数学',
    sum(case kecheng='物理’then chengji end ) '物理’,
    sum(case kecheng='化学’then chengji end ) '化学’
    from T_Student group by name
      

  4.   

    1.表结构不合理
    2。如果用连接查寻,速度太忙
    3。可以用storeproc+cursor,速度快,可以满住要求
      

  5.   

    select b.name,sum(b.课程1),sum(b.课程2),sum(b.课程3) from(
    select a.Name,
    (case when a.kecheng='课程1' then a.chengji end) as '课程1',
    (case when a.kecheng='课程2' then a.chengji end) as '课程2',
    (case when a.kecheng='课程3' then a.chengji end) as '课程3'
    from student a
    group by a.name  )  b