• 締切済み

Access2003を使ってデータの相対表が欲しいです

アクセス初心者です。 質問なのですが、一つのテーブルデータから あるパターンに当てはまるデータの数を集計したい場合 手順はどのように踏めばいいでしょうか。 例) テーブル構成→ 【フィールド】  月 / 日 / IN / OUT / 種類 / etc....(そのほかのデータ) 【データ】  1 / 1 / 100 / 200 / A / etc....  1 / 2 / 200 / 100 / B / etc....  1 / 3 / 100 / 300 / B / etc....  ・ ・ ・ ・  ・ ・ ・ ・  ・ ・ ・ ・  1 / 31 / 300 / 100 / B / etc....  のように続く。 この中から 【1/1~15日の間で、100でINし200でOUTしたBの数】 を調べて自動的に演算した結果を表示させたい場合、 どういった手順を踏めばいいでしょうか‥? 「クロス集計クエリ」を使ってみたのですが、 行見出しに「IN」列見出しに「OUT」を設定しても 思うように合計の値が出てきません。 イメージでは最終的にこんな相対表を作りたいので、 行、列各数値それぞれの対応した合計値が欲しいです。 ↓↓↓  OUT 100 / 200 / 300 / 計 IN 100/  -  ○○ ○○ ○○ 200/  ○○  -  ○○ ○○ 300/  ○○ ○○  -  ○○ 計/  ○○ ○○ ○○  - 申し訳ないのですが、やり方を どなたかご教授願えないでしょうかm(_ _)m

みんなの回答

  • Dxak
  • ベストアンサー率34% (510/1465)
回答No.2

#1です 補足ありがとうございます > 月日の条件は「種類」と同じように、 > where条件で指定すると区切られる?ようです。 この部分は、追加しなくて大丈夫? 例えば、1月15日~2月15とかなった場合等を考慮すれば・・・ フィールド   : DateSerial (2007, [月], [日]) 集計      : Where 条件 抽出条件    : Between #2007/1/1# And #2007/1/15# とか、条件にした方が楽かも知れません (2007は、[年]と言うフィールドが無いので適当に年号を付けてます、年を超えるデータの場合は再度検討の必要があるかも^^;) > SQLビューとは‥? デザインビューでの話をしているので、データシートビューとの切替のところにある、「SQLビュー」です。 中身が判らなければ、文字の羅列の呪文のようなビューのことです 実際、こちらをテキストで打ち込む必要が出てきます その説明は後だとして・・・ >  OUT 100 / 200 / 300 / 計 > IN > 計/  ○○ ○○ ○○  - の部分のクエリを、もう一つ作りましょう (#1での回答のクエリをコピーして、変更したほうが早いかも^^;) > フィールド   : In > 集計      : グループ化 > 行列の入れ替え : 行見出し の部分を フィールド   : In : "合計" 集計      : グループ化 行列の入れ替え : 行見出し へ、差し替えてください そうすると、合計だけのクエリが出来上がります この2つのクエリを使用して、新規のクエリを作り、 SQLビューに変更後 Select * From #1で作ったクエリー名 Union Select * From #2で作ったクエリー名; をテキストで書き込んでユニオンクエリを作成します 「データシートビュー」にすると・・・出来てませんか? クエリ数を減らすことを考えれば、この2つのクロス集計クエリと1つのユニオンクエリで、作成するのが良いのかも知れませんが・・・ 私なら、最初に条件抽出のクエリをクロス集計クエリの前に1つ挟みます 選択クエリ (抽出集計するためのリスト作成) ↓        ↓ クロス集計クエリ クロス集計クエリ (内訳)     (合計のみ) ↓        ↓ ユニオンクエリ (求める表) と、言う感じにね 抽出条件を1つのクエリを直すだけで済むと言うことになりますから^^;

  • Dxak
  • ベストアンサー率34% (510/1465)
回答No.1

いくつか、判らないので補足お願いできますか? > 【フィールド】 >  月 / 日 / IN / OUT / 種類 / etc....(そのほかのデータ) 「月 / 日」は、別のフィールドで数値型?同じフィールドで日付時刻型? > 【1/1~15日の間で、100でINし200でOUTしたBの数】 は、Bのレコード数を数えればよいと? >  OUT 100 / 200 / 300 / 計 > IN > 100/  -  ○○ ○○ ○○ > 200/  ○○  -  ○○ ○○ > 300/  ○○ ○○  -  ○○ ここまでは、普通のクロス集計で出てくると思うんだけど? > 計/  ○○ ○○ ○○  - この部分は、ユニオンで結合するようになると思うのですが・・・ ユニオンで結合する事を考えると、フォームかレポート上で考慮した方が、楽ですが、列表題が可変にする必要があるなら、別の意味で大変になってきます、その当り如何でしょう? とりあえず、不明な部分を除いて解説で クロス集計クエリで、 フィールド   : Out 集計      : グループ化 行列の入れ替え : 列見出し フィールド   : In 集計      : グループ化 行列の入れ替え : 行見出し フィールド   : 計: In 集計      : カウント 行列の入れ替え : 行見出し フィールド   : Out 集計      : カウント 行列の入れ替え : 値 フィールド   : 種類 集計      : Where 条件 抽出条件    : "B" で、あと月日の条件と、最後のユニオンクエリの部分になりますが・・・ ユニオンクエリのところは、SQLビューで記載してくるようになりますので、デザインビューで説明できる範囲は以上ですね とりあえず、憶測の部分もあるので、補足お願いね^^;

minaberry
質問者

補足

ありがとうございます!! 上記に従ってクエリを作って、数値が出せましたm(_ _)m 補足の点について ・「月 / 日」は、別のフィールドで数値型?同じフィールドで日付時刻型? →別のフィールドで数値型です ・Bのレコード数を数えればよいと? →同じ条件でA・Bそれぞれの表を作ろうとしています ・フォームかレポート上で考慮した方が、楽ですが‥ →現段階ではフォームやレポートの作成に覚えがない為‥ クエリでお願いいたしますm(_ _)m 的外れな箇所等ありましたらすみません。 月日の条件は「種類」と同じように、 where条件で指定すると区切られる?ようです。 SQLビューとは‥? 初心者ですみませんm(_ _)m;

関連するQ&A

専門家に質問してみよう