• 締切済み

アクセス クロス集計と単純集計の齟齬について

すみません、質問させてください。 アクセス2010を使用しています。 下記のような元の表があります。 ID 試験科目  試験形式    合否(1/0)  当該科目選抜試験参加(1/0) 1  国語    タイプ1    1        1 1 国語    タイプ2    0     1 1  国語    タイプ3    1     1 2  国語    タイプ1    0        0 2 国語    タイプ2    0     0 2  英語    タイプ1    0     1 ※学生は5教科のなかから任意の科目を最低1教科、最大5教科受験しています。 ※各教科には複数の試験形式があります。(例えば国語なら、国語の中でタイプ1~3の複数の試験がある)どれか一つのタイプの試験で合格すると、次の選抜試験に参加する「権利」を得ます。 ※選抜試験参加は任意(希望した者のみ参加)です。また、複数の教科で合格していても、選抜では一人一科目のみしか参加できません。(つまり、英語と国語で合格していても、どちらか一科目の選抜試験のみにしか参加できない。合格しても参加しない者もいる) ※同一教科の複数タイプの試験を受け、タイプ1合格、タイプ2不合格で、選抜試験に参加した場合、タイプ2のレコードにおいても選抜試験参加のフラグがたっている。 このような状況で下記のような集計をしました。 1、元の表から、クエリでID、科目、当該科目選抜試験参加を抜き出し、「固有のキー」をオンにし、科目別選抜試験参加者を重複抜きで抽出した一覧(表A)を作成。  選抜試験参加者を科目ごとに単純集計(集計1)。 2、元の表から、クエリでID、科目、合否=1のみを抜き出し、「固有のキ」ーをオンにし、科目別合格者(選抜試験未参加を含む)を重複抜きで抽出した一覧(表B)を作成。 3、複数の科目で合格した学生が、選抜試験に参加したのか、したとしたらどの教科の選抜試験に参加したのかを集計するクロス表として、   表AとBのクロス集計を行ない、   行=表Aの科目名でグループ化   列=表Bの科目名でグループ化   値=表Aの選抜試験参加フラグをカウント  として実行しました。 目的は下記のような、「国語に合格した生徒のうち、国語(もしくは他の各教科)の選抜に参加した生徒は何人か」がわかるようなクロス表(表C)を作ることです。             合格した科目      国語 英語 数学 理科 社会 選 国語 10 抜 英語 50 参 数学 1 加 理科 1 科 社会 20 目 大体それらしい数字が出たのですが、表Cの斜めの列=つまり国語で合格し国語の選抜を受けた生徒の数、と、集計1で集計した数が合いません。 何が問題なのでしょうか。 長い説明ですみませんが、どうぞご教示をお願いします。 当方Access素人で、SQLというのはどこに記述すればいいのかも、よくわかっていません。 具体的な操作を含めて教えてくださいますと大変助かります。

みんなの回答

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.2

> 手作業でデータ検証できる分量ではないのです。 > Excel張りつけでデータ検証できるなら質問しません。。 いきなり本番データでやらずに、サンプルデータで検証するほうが解決は早いと思います。

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

> 表AとBのクロス集計を行ない、 これはどうやったのですか? この段階でクロス集計せずに一覧化して、EXCELにでも貼り付けて データを検証してください。特に行数。

dd-dory
質問者

補足

文字通りです。 両者のIDにリレーションシップを設定した上で、クロス集計クエリで記述のとおりの入力値で作成しました。 手作業でデータ検証できる分量ではないのです。 Excel張りつけでデータ検証できるなら質問しません。。 一度にコピー張りつけできる分量もこえてしまっていますので。

専門家に質問してみよう