MS Access使用iif语句选择查询作为别名

时间:2015-12-16 20:25:45

标签: ms-access-2010 iif

我正在尝试构建一个查询,以便将特定考试的学生结果作为可以合并到word文档的表格。以下工作正常,但似乎非常缺乏,因为我需要在同一个iif语句中调用两次相同的查询。

 Test1: IIf(Round((SELECT tblMarks.Score  FROM tblMarks WHERE tblMarks.Test = 'Test1' AND [tblMarks].[ID] = [tblStudents].ID AND [tblMarks].[Rewrite] = false)*100,0)<70,70,Round((SELECT tblMarks.Score  FROM tblMarks WHERE tblMarks.Test = 'Test1' AND [tblMarks].[ID] = [tblStudents].ID AND [tblMarks].[Rewrite] = false)*100,0))

为了摆脱第二次查询调用,我尝试了以下内容,但是IIF错误条件不能识别StudentScore。

Test1: IIf(Round((SELECT tblMarks.Score  AS StudentScore FROM tblMarks WHERE tblMarks.Test = 'Test1' AND [tblMarks].[ID] = [tblStudents].ID AND [tblMarks].[Rewrite] = false)*100,0)<70,70, StudentScore)

我有很多测试字段(test2,test3等等),所以即使只删除每个字段的额外查询也可能有助于加快速度。

有没有人知道我想做什么甚至可能???任何帮助表示赞赏。

感谢。

更新:

我正在尝试创建一个表/查询,用于合并到带字段的MS Word文档中。这个新查询将许多表合并为一个。这是表结构的例子:

tblStudent:学生ID,姓名等...很多个人信息 tblScore:StudentID,测试,分数,重写等......

新查询字段为:

DISTINCT tblStudent.StudentID,tblStudent.Name,tblScore.Test(如上所示)AS Test1,tblScore.Test(与上面相同但有test2)AS Test2,...其中CourseName .....

希望这有助于人们看到我想要做的事情;哪个工作正常我只是想消除if语句中的第二个查询。对不起,这是我现在能做的最好的事情,因为我现在不在工作,这就是存储所有这些东西的地方。

0 个答案:

没有答案