- ベストアンサー
Accessのテーブル作成について
現在Access2003でテーブルを下記のように作成しています。 下記のような問題があり、テーブルをどのように再編成 (正規化?してテーブルを分けるなど)すれば、うまくいくか よいお知恵を拝借したくお願いいたします。 (1)各参加者毎に単純にレースへ参加した回数をカウントしたい。 (参加した回数によって、記念品を授与する。) しかし、横のカウントが困難である。 (2)将来フィールドが足りなくなる。 氏名 (95'レースa) (95'レースb)(96'レースa)(96'レースc)・・・・ AA 1 1 1 1 BB 3 3 3 不出場 CC 4 不出場 不出場 2 DD 2 1 2 4 EE 5 4 4 3 ・ ・ ・ 数字はレースの順位を入力しています。 レースは、毎年行われるものもあれば、何年かに1度周期的に行われるものがあります。 参加者は固定していて2000人位いるが、レースによっては不参加の者もいます。レースは年間5レースくらいあります。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 こんな感じで、如何でしょうか。 <レーステーブル> レースコード レース名 01 レースa 02 レースb 03 レースc 04 レースd 05 レースe <レーザーテーブル> レーザーコード レーザー氏名 0001 AA 0002 BB 0003 CC 0004 DD 0005 EE ・ ・ <出場テーブル> 年度 レースコード レーザーコード 順位 1995 01 0001 1 1995 01 0002 3 1995 01 0003 4 1995 01 0004 2 1995 01 0005 5 1995 02 0001 1 1995 02 0002 3 1995 02 0004 1 1995 02 0005 4 1996 01 0001 1 1996 01 0002 3 1996 01 0004 2 1996 01 0005 4 1996 03 0001 1 1996 03 0003 2 1996 03 0004 4 1996 03 0005 3 ・ ・ >レースへ参加した回数をカウント SELECT レーザコード,COUNT(レーザコード) FROM 出場テーブル GROUP BY レーザコード
その他の回答 (1)
- ryusei2
- ベストアンサー率24% (45/184)
レーステーブル レースNo. レース名 1 (95'レースa) 2 (95'レースb) 3 (96'レースa) 4 (96'レースc) レーサーテーブル No. 名前 1 AA 2 BB 3 CC 4 DD 出場テーブル No. レーサー レース 1 1 2 2 2 2 3 3 2 4 1 3
お礼
とてもすばやいご回答、ありがとうございました。 とても参考になりました。
お礼
とても参考になりました。 おかげで、今日は残業しなくてすみそうです。 ありがとうございました。