Office中国论坛/Access中国论坛
标题:
[求助]MDB升迁至SQL后的sql查询语句
[打印本页]
作者:
阿丰
时间:
2006-4-15 23:34
标题:
[求助]MDB升迁至SQL后的sql查询语句
原来的sql查询语名:SELECT 班级.班级, 成绩单.学年度编号, 学生名单.班中序号, 学生名单.姓名, 成绩单.课程编号, 成绩单.段考成绩, 成绩单.期评成绩, 成绩单.学期补考, 成绩单.毕业补考, 学生名单.班级编号, 学年度.学期, 课程名称.课程名称, IIf(成绩单.学期补考="补及" Or 成绩单.毕业补考="补及","补及",IIf(IsNull(成绩单.期评成绩),"0",成绩单.期评成绩)) AS 成绩评定, 学生名单.学籍号
FROM 班级 INNER JOIN (学生名单 INNER JOIN (学年度 INNER JOIN (课程名称 INNER JOIN 成绩单 ON 课程名称.课程编号 = 成绩单.课程编号) ON 学年度.学年度编号 = 成绩单.学年度编号) ON 学生名单.学籍号 = 成绩单.学籍号) ON 班级.班级编号 = 学生名单.班级编号
ORDER BY 班级.班级, 成绩单.学年度编号, 学生名单.班中序号, 课程名称.课程名称, 学生名单.学籍号;
该语句正常
将MDB数据库迁至SQL数据库后的查询语句:
SELECT TOP 100 PERCENT dbo.学年度.学期, dbo.班级.班级, dbo.学生名单.学籍号,
dbo.学生名单.班中序号, dbo.学生名单.姓名, dbo.课程名称.课程名称,
IIf(dbo.成绩单.学期补考 = '补及' OR
dbo.成绩单.毕业补考 = '补及', '补及', IIf(IsNull(dbo.成绩单.期评成绩), '0',
dbo.成绩单.期评成绩)) AS 成绩评定
FROM dbo.班级 INNER JOIN
dbo.学生名单 ON dbo.班级.班级编号 = dbo.学生名单.班级编号 INNER JOIN
dbo.成绩单 ON dbo.学生名单.学籍号 = dbo.成绩单.学籍号 INNER JOIN
dbo.课程名称 ON dbo.成绩单.课程编号 = dbo.课程名称.课程编号 INNER JOIN
dbo.学年度 ON dbo.成绩单.学年度编号 = dbo.学年度.学年度编号
ORDER BY dbo.学年度.学期, dbo.班级.班级, dbo.学生名单.班中序号, dbo.学生名单.学籍号,
dbo.课程名称.课程名称
老提示'='附近在语法错误,不知如何改正,请高手指点。
[此贴子已经被作者于2006-4-15 15:36:10编辑过]
作者:
阿丰
时间:
2006-4-16 04:50
已找到解决的方法,原因是 SQL中不能用IFF函数,可将
IIf(dbo.成绩单.学期补考 = '补及' OR
dbo.成绩单.毕业补考 = '补及', '补及', IIf(IsNull(dbo.成绩单.期评成绩), '0',
dbo.成绩单.期评成绩)) AS 成绩评定
改为:
CASE WHEN 学期补考 = '补及' THEN '补及' WHEN 毕业补考 = '补及' THEN '补及' ELSE 期评成绩
END AS 成绩评定
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/)
Powered by Discuz! X3.3