2016-09-21 52 views
0

我想显示全部类别和等级只有那些至少有一个“F”级的学生。MS Access:根据另一个字段显示整个群组

这里是源表:

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
  1. 创建一个查询与您的表作为源。放入第一列的学生字段中,并在第二列中输入以下公式:IIf([Grade] =“F”,1,0),然后保存查询。 (默认情况下,Access会将此列命名为“Expr1”,但您将其更改为任何您喜欢的内容)

  2. 使用查询1作为源创建第二个查询,将查询1,group on,sum具有公式的列,并在此列中添加> = 1的条件并保存。你现在只有一个桌子,只有至少有1个“F”的学生。 (通过将光标放置在查询底部的网格部分,右键单击并从提示框中选择“总计”进行分组)

  3. 创建第三个查询,将第二个查询绑定到原始源表连接学生字段与1比1匹配(即联接类型1)。

+0

OP在这里:这也工作;谢谢。 – user6859434

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' 
); 

接下来,你的基础上面查询报告。

+0

OP在这里:这工作很好,非常感谢。 – user6859434

0

OP在这里:两个答案都有效;再次感谢。下面是第二个答案的代码:

查询1 SELECT Students2.Students,IIf([Grade] =“F”,1,0)AS F_grade FROM Students2;

查询2个 SELECT Query1.Students,SUM(Query1.F_grade)AS SumOfF_grade FROM查询1 GROUP BY Query1.Students HAVING(((萨姆(Query1.F_grade))> = 1));

查询3 SELECT Students2.Students,Students2.Class,Students2.Grade FROM Students2 INNER JOIN Query2 ON Students2.Students = Query2.Students;

相关问题