2016-09-21 8 views
0

すべてのクラスとグレード少なくとも1つの "F"グレードを持つ学生。ここでMSアクセス:別のフィールドに基づいてグループ全体を表示

は、ソース表である:

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 

繰り返しますが、私はのみすべてクラスとグレードを表示したいと思います。ここでは

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 

は学生によってグループ化された報告書であり、以下に示すように、少なくとも1つの「F」等級を有する学生:

Jetson, E 
    ---------------Biology F 
    ---------------Geometry B 
    ---------------Spanish B 
Rubble, B 
    ---------------Biology  B 
    ---------------Geometry B 
    ---------------English  F 

ご協力いただければ幸いです。

答えて

0
  1. テーブルをソースとしてクエリを作成します。最初の列のStudentsフィールドをドロップし、2番目の列にIIf([Grade] = "F"、1,0)と入力して、クエリを保存します。 (デフォルトでは、この列の名前は「Expr1」ですが、好きなように変更します)

  2. クエリ1をソースとして使用して2番目のクエリを作成し、クエリ1の2つの列にドロップします数式を含む列を選択し、この列に> = 1という条件を追加して保存します。あなたは少なくとも1 "F"以上の学生しかいないテーブルを持っています。 (クエリの下部にあるクエリのグリッド部分にカーソルを置き、プロンプトボックスから「合計」を選択してグループ化します)

  3. 2番目のクエリを元のソーステーブルに結び付ける3番目のクエリを作成します。 Studentsフィールドと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番目の答えのコードは次のとおりです。 (((SUM(Query1.F_grade))> = 1))を備えたQuery1.Students BY Query1を 群から

クエリ2 SELECT Query1.Students、合計(Query1.F_grade)SumOfF_grade AS。

クエリ3 SELECT生徒2.生徒2.生徒2.生徒2.グラード 生徒2 INNER JOIN質問2生徒2.受講者=クエリ2.受講者;

関連する問題