select sNO,sName,sum(aa) as 语文,sum(bb) as 数学,sum(cc) as 物理 from (select a.sNo,a.sName,iif(c.cNO='语文',b.成绩,0) as aa,iif(c.cNo='数学',b.成绩,0) as bb,iif(c.cNo='物理',b.成绩,0) as cc from (学生信息表 as a inner join 学生成绩表 b on a.sNo=b.sNo) inner join 课程信息表 c on b.CNo=c.CNo) as TempTable group by sNo,sName
要求用ADO2.0版本以上并且有Microsoft Jet OLEDB 4.0才能正常执行,原来的Jet OLEDB 3.51不能解释这个SQL语法。

解决方案 »

  1.   

    Select A.SNo,A.SName,
    (Select 成绩 From 学生成绩表 Where (CNo='001') And (SNo=A.SNO)) As 语文成绩,
    (Select 成绩 From 学生成绩表 Where (CNo='002') And (SNo=A.SNO)) As 数学成绩,
    (Select 成绩 From 学生成绩表 Where (CNo='003') And (SNo=A.SNO)) As 物理成绩,
    From 学生信息表 A
      

  2.   

    gz,我也在用access做东东,access怎样做像sql一样的存储过程?高手赐教呀!
      

  3.   

    Select A.SNo,A.SName,
    (Select 成绩 From 学生成绩表 Where (CNo='001') And (SNo=A.SNO)) As 语文成绩,
    (Select 成绩 From 学生成绩表 Where (CNo='002') And (SNo=A.SNO)) As 数学成绩,
    (Select 成绩 From 学生成绩表 Where (CNo='003') And (SNo=A.SNO)) As 物理成绩
    From 学生信息表 A ------------------------------------
    As “语文成绩” ////也要从数据库中读出
    (CNo='002')     ////每个学生的所学科目未知,即不能直接赋值课程号
      

  4.   

    As “语文成绩” ////也要从数据库中读出
    (CNo='002')    ////每个学生的所学科目未知,即不能直接赋值课程号
    -------
    应该怎么做