首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MS Access:基于另一个字段显示整个组

MS Access:基于另一个字段显示整个组
EN

Stack Overflow用户
提问于 2016-09-21 16:54:35
回答 3查看 22关注 0票数 0

我想向展示的所有课程和年级,只向那些至少有一个"F“级的学生展示。

以下是源表:

代码语言:javascript
复制
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

以下是一份按学生分组的报告:

代码语言:javascript
复制
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“级的学生,如下所示:

代码语言:javascript
复制
Jetson, E  
    ---------------Biology    F  
    ---------------Geometry  B  
    ---------------Spanish    B  
Rubble, B  
    ---------------Biology     B  
    ---------------Geometry  B  
    ---------------English     F   

如能提供任何援助,将不胜感激。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-09-21 20:03:26

  1. 创建一个以表作为源的查询。在第一列中删除second字段,并在第二列中放置以下公式:IIf(Grade=“F”,1,0),然后保存查询。(默认情况下,Access会将该列命名为“Expr1”,但您可以将其更改为任何您喜欢的内容)
  2. 使用查询1作为源创建第二个查询,删除查询1中的2列,组on,将列与公式之和,并在本列中添加>=1的条件,然后保存。您现在有一张桌子,只有学生谁有至少1“F”。(将光标放置在查询的底部的网格部分,右击并从提示框中选择“总计”进行分组)
  3. 创建第三个查询,将第二个查询绑定到原始源表,方法是将“学生”字段与1到1匹配(即连接类型1)连接起来。
票数 0
EN

Stack Overflow用户

发布于 2016-09-21 21:26:39

可以使用子查询查询表,以查询具有F级的任何实例:

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2016-09-27 14:17:46

在这里:这两个答案都成功了;再次感谢。这是第二个答案的代码:

查询1选择Students2.Students,IIf(Grade="F",1,0)作为来自Students2的F_grade;

查询2选择Query1.Students,Sum(Query1.F_grade)作为SumOfF_grade,从Query1组中选择Query1.Students具有((Sum(Query1.F_grade)>=1));

查询3选择学生2、学生2、班级2、学生2年级,从Students2内部加入Query2 2学生2、学生=Query2学生;

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39622357

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档