重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

現在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レースくらいあります。

A 回答 (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 レーザコード
    • good
    • 0
この回答へのお礼

とても参考になりました。
おかげで、今日は残業しなくてすみそうです。
ありがとうございました。

お礼日時:2007/05/26 14:51

レーステーブル


レースNo.レース名
1(95'レースa)
2(95'レースb)
3(96'レースa)
4(96'レースc)

レーサーテーブル
No.名前
1AA
2BB
3CC
4DD

出場テーブル
No.レーサーレース
112
222
332
413
    • good
    • 0
この回答へのお礼

とてもすばやいご回答、ありがとうございました。
とても参考になりました。

お礼日時:2007/05/26 14:46

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!