- ベストアンサー
Accessで複数のフィールドから抽出・集計する方法とは?
- Accessを使用して複数のフィールドからデータを抽出・集計する方法について教えてください。
- 具体的なテーブル「T試合結果」のデータをもとに、最新の対戦結果をチームごとに表示する方法や、日別の勝敗数を集計する方法についてお教えいただけますか?
- 初心者のため、マクロやVBAの知識はあまりありません。より簡単で効果的な方法があれば教えていただけるとありがたいです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
>テーブル「T試合結果」 対戦相手,1試合目日時,1試合目勝敗・・ とありますが対戦相手,1試合目日時,1試合目勝敗・・という横にずっと並んだ複数のフィールドなのでしょうか? テーブルT試合結果は 対戦相手・日時・勝敗・試合場所 の4つのフィールドにした方が入力も集計も簡単に済みます。 各フィールドが横にずっと続くようなテーブルはユニオンクエリを使ったりしないと集計等が出来ません。 >(1)チームごとの最新対戦結果表示 上記で書いた4つのフィールドであれば簡単にやるには2つのクエリを作ればできます。 まず対戦相手と日時の2つのフィールドがあるクエリを作り集計クエリにし対戦相手をグループ化・日付を最大にします。 そのクエリを元にもう一つクエリを作りテーブル追加でT試合結果を追加し集計クエリとT試合結果の対戦相手同士と日付の最大と日付をリレーションで結合しT試合結果の勝敗のフィールドをクエリに追加します。 2つ目に作ったクエリを開けば最新対戦結果を表示出来ます。 複数のフィールドから・・となると SELECT T試合結果.対戦相手, T試合結果.1試合目日時 FROM T試合結果 UNION SELECT T試合結果.対戦相手, T試合結果.2試合目日時 FROM T試合結果 UNION SELECT T試合結果.対戦相手, T試合結果.3試合目日時 FROM T試合結果 ・ ・ ; のように必要フィールド分SQLで記述して試合日時を同一のフィールドに結合してそのユニオンクエリから抽出するようになります。 ユニオンクエリを作るのが大変ならT試合結果のフィールドの変更をお勧めします。 >(2)日別の勝敗数集計 同様に4つのフィールドであれば クエリを1つ作り集計クエリにし試合日付と勝敗の2つのフィールドを作り日付と勝敗でグループ化し勝敗数というフィールドを作りフィールドに勝敗を指定し集計をカウントにすれば出来ます。 複数ある場合はユニオンクエリを作り元にして同様に集計クエリを作れば出来ます。 T試合結果のフィールドの持ち方を変更した方が良いと思います。データベースとしてのテーブルの概念とちょっと違うと思います。
お礼
回答ありがとうございます。 >横にずっと並んだ複数のフィールドなのでしょうか? テーブルT試合結果は対戦相手・日時・勝敗・試合場所の4つのフィールドにした方が入力も集計も簡単に済みます。 実は1チームのデータを1行にまとめる必要があるため、このような構成にしています。 やはり作り方がおかしいのですね…(^^; >必要フィールド分SQLで記述して試合日時を同一のフィールドに結合してそのユニオンクエリから抽出するようになります。 ユニオンクエリ作ってみました。便利ですね~! それをもとにしたクエリで集計して、思い通りの結果を出すことができました。感謝です。