我想展示所有课程和成绩仅那些至少有一个" F"级。
这是源表:
ID | Students | Class | Grade
1 | Addams, W | History | A
2 | Addams, W | Biology | A
3 | Addams, W | French | B
4 | Jetson, E | Spanish | B
5 | Jetson, E | Geometry | B
6 | Jetson, E | Biology | F
7 | Rubble, B | English | F
8 | Rubble, B | Geometry | B
9 | Rubble, B | Biology | B
10 | Flintstone, P | Music | A
11 | Flintstone, P | Spanish | B
这是一份按学生分组的报告:
Addams, W
---------------French B
---------------Biology A
---------------History A
Flintstone, P
---------------Spanish B
---------------Music A
Jetson, E
---------------Biology F
---------------Geometry B
---------------Spanish B
Rubble, B
---------------Biology B
---------------Geometry B
---------------English F
同样,我想展示所有课程和成绩仅那些至少有一个" F"等级,如下所示:
Jetson, E
---------------Biology F
---------------Geometry B
---------------Spanish B
Rubble, B
---------------Biology B
---------------Geometry B
---------------English F
非常感谢任何帮助。
答案 0 :(得分:0)
使用您的表作为源创建查询。放入第一列中的Students字段,并将以下公式放在第二列中:IIf([Grade] =“F”,1,0),然后保存查询。 (默认情况下,Access会将此列命名为“Expr1”,但您可以将其更改为您喜欢的任何内容)
使用查询1作为源创建第二个查询,从查询1中删除2列,分组,使用公式对列进行求和,并在此列中添加> = 1的条件,并且保存。你现在有一张桌子,只有至少有一个“F”的学生。 (通过将光标放在底部查询的网格部分,右键单击并从提示框中选择“总计”来分组)
通过将Students字段与1对1匹配(即连接类型1)连接,创建将第二个查询与原始源表绑定的第三个查询。
答案 1 :(得分:0)
您可以使用子查询查询您的表,以便在同一个表中查询具有F等级的任何实例:
SELECT a.ID, a.Students, a.Class, a.Grade
FROM yourtable AS a
WHERE EXISTS
(
SELECT '1'
FROM yourtable AS b
WHERE a.Students = b.Students
AND b.Grade = 'F'
);
接下来,根据上述查询确定报告。
答案 2 :(得分:0)
查询1 选择Students2.Students,IIf([等级] =" F",1,0)AS F_grade 来自Students2;
查询2 SELECT Query1.Students,Sum(Query1.F_grade)AS SumOfF_grade FROM Query1 GROUP BY Query1.Students HAVING(((Sum(Query1.F_grade))> = 1));
查询3 选择Students2.Students,Students2.Class,Students2.Grade FROM Students2 INNER JOIN Query2 ON Students2.Students = Query2.Students;