![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
今、グループが70個、人が100人くらいのデータベースを作成中です。1つのグループには3人の人が属し、1人1~7のグループに属します。
1対多ならまだ考えやすいのですが、多対多ということで、悩んでいます。
とりあえず今は、グループの情報を管理するテーブル、人の情報を管理するテーブルと、グループIDと人IDの組み合わせをテーブルにして、この三つをつなぐことで様々な作業をするようにしています。そこで困った問題が二つ発生しました。
・作業の都合上、ある人がどのグループに所属しているかというのを紙ベースで一覧にしなければならなくなりました。イメージとしては下のような感じです。
レポートでもフォームでも何でもいいのですが、このような形でデータを出すことは出来ないでしょうか?
(地道に手作業で写すしかないでしょうか)
┌──┬────┐
│名前│グループ│
├──┼─────┤
│○○│A B D │
├──┼─────┤
│××│B E │
├──┼─────┤
・各グループで、各人10点満点の点数を持っており、その平均点を元に色々作業をしたいことがあります。(同じ人でもグループ毎に点数が異なるので、今はその点数をグループIDと人IDの組み合わせを管理するテーブルに入れて一緒に管理しています。)クエリやフォームなどで、平均点を計算させてグループを管理しているテーブルに書き込むことは出来ないでしょうか。
長文申し訳ございませんが、宜しくお願いいたします。
No.1ベストアンサー
- 回答日時:
まず、以下の3つのテーブルと各項目を前提とします。
(1) T_グループ
グループID
平均点
(2) T_人
人ID
(3) T_組み合わせ
人ID
グループID
点数
1番目の質問について
以下をコピーし、クエリーのSQLビューでペーストして下さい。ペーストした後はデザインビューに戻して構いません。
SELECT T_人.人ID, DMax("[グループID]","T_組み合わせ","[T_組み合わせ]![人ID]='" & [人ID] & "'") AS グループ1, DMax("[グループID]","T_組み合わせ","[T_組み合わせ]![人ID]='" & [人ID] & "' AND [グループID] < '" & [グループ1] & "'") AS グループ2, DMax("[グループID]","T_組み合わせ","[T_組み合わせ]![人ID]='" & [人ID] & "' AND [グループID] < '" & [グループ2] & "'") AS グループ3, DMax("[グループID]","T_組み合わせ","[T_組み合わせ]![人ID]='" & [人ID] & "' AND [グループID] < '" & [グループ3] & "'") AS グループ4, DMax("[グループID]","T_組み合わせ","[T_組み合わせ]![人ID]='" & [人ID] & "' AND [グループID] < '" & [グループ4] & "'") AS グループ5, DMax("[グループID]","T_組み合わせ","[T_組み合わせ]![人ID]='" & [人ID] & "' AND [グループID] < '" & [グループ5] & "'") AS グループ6, DMax("[グループID]","T_組み合わせ","[T_組み合わせ]![人ID]='" & [人ID] & "' AND [グループID] < '" & [グループ6] & "'") AS グループ7
FROM T_人;
このクエリーを実行すると、各人の所属グループが横に並びますが、IDの降順になりますのでご注意ください。
2番目の質問について
以下をコピーし、クエリーのSQLビューでペーストして下さい。ペーストした後はデザインビューに戻して構いません。
UPDATE T_グループ SET T_グループ.平均点 = DAvg("[点数]","[T_組み合わせ]","[グループID]='" & [グループID] & "'");
このクエリーを実行すると、T_組み合わせテーブルのグループごとの平均値で、T_グループを更新します。
以上
感動しました!!!
ところで、浅知恵でDMaxをDMinに、<を>にしたら昇順にできるのかと思いましたが、そういう訳でもないのですね。降順でも問題ないと思いますので、活用します。本当にありがとうございました。
No.2
- 回答日時:
No.1の続きです。
>DMaxをDMinに、<を>にしたら昇順にできるのかと思いましたが
以下のクロス集計クエリーならば、昇順にできますが、若干、ご希望のフォーマットとは異なります。
TRANSFORM First(T_組み合わせ.グループID) AS グループIDの先頭
SELECT T_組み合わせ.人ID
FROM T_組み合わせ
GROUP BY T_組み合わせ.人ID
PIVOT T_組み合わせ.グループID;
再びのご回答ありがとうございます。なるほど、色々なやり方があるのですね。
まずはNo.1のやり方で運用してみて、不都合があるようだったらこちらも試してみたいと思います。
再び感動しました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Googleからの以下のメールにつ...
-
LINEの既読数がおかしいです(´...
-
パート始めてから、欠勤の連絡...
-
Thunderbirdでグループ送信
-
町内会回覧板が戻って来ない・・・
-
thunderbirdのアドレス帳移設
-
メールソフトBeckyのアドレス帳...
-
Outlook 2011で「今日」「昨日...
-
Beckyでアドレス帳のグループへ...
-
アンケート座談会に参加した事...
-
Excelで指定した条件で時間を自...
-
スマホはアンドロイドです。SMS...
-
重複しないグループ分けについて
-
パートの新人さん。私はパート...
-
エクセルで不規則勤務職場の勤...
-
エクセル:グループ機能について
-
N905iμの電話帳グループ別について
-
G-Mailで複数の相手にいっせい...
-
itunes→ipod 曲のグループ分け...
-
Outlookのアドレス帳のグループ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Googleからの以下のメールにつ...
-
LINEの既読数がおかしいです(´...
-
Outlookのアドレス帳のグループ...
-
EXCEL/グループ数を数え...
-
重複しないグループ分けについて
-
町内会回覧板が戻って来ない・・・
-
thunderbirdのアドレス帳移設
-
パート始めてから、欠勤の連絡...
-
Beckyでアドレス帳のグループへ...
-
Excelで指定した条件で時間を自...
-
スマホはアンドロイドです。SMS...
-
googleグループに招待されまし...
-
VBA 図形グループ化後オブジェ...
-
IP Messengerでグループ名を作...
-
エクセル:グループ機能について
-
outlookのグループアドレスのメ...
-
EXCELで連続した同じ値をグルー...
-
アンケート座談会に参加した事...
-
エクセルで不規則勤務職場の勤...
-
Gメールのグループ並び替えは...
おすすめ情報