• ベストアンサー

(ACCESS)今回出た数字を基準にして次回出た数字をカウントしたいのですが…

1~6までの数字が書かれた6枚のカードから3枚を同時に引いて 出たカードの数字を記録していくデータベースを作るとき、 ・今回引いた3枚が(1).(3).(6)(区別のため()囲み数字にしました)  次回引いた3枚が1.4.5の時 「(1)」が出た次回の数字、1.4.5をカウント 「(3)」が出た次回の数字、1.4.5をカウント 「(6)」が出た次回数字、1.4.5をカウント 今回出たそれぞれの数字を基準にして 次回出た数字をカウントしていくクエリを 作成するにはどうすればよいのでしょうか?  ACCESSの造詣が深い方、ご助力をよろしくお願いいたします。 --------------------------------------------- 今現在あるテーブル ・結果テーブル…引いた3枚の数字を記録      テーブル 「結果テーブル」    フィールド名 「回数」「1枚目」「2枚目」「3枚目」(全て数値型) ・カード番号テーブル    フィールド名 「カード番号」    レコード数=6(カード番号=1,2,・・・6)数値型

質問者が選んだベストアンサー

  • ベストアンサー
  • bonaron
  • ベストアンサー率64% (482/745)
回答No.1

だんだん、難しくなってきますね。 クエリを2つ作ります。 次の目クロス集計にご希望の結果が得られます。 わかりやすくするためには、 サブクエリを独立したクエリにした方が良いかも。 クエリ:目ユニオン SELECT 回数, [1枚目] AS 目 FROM 結果テーブル UNION ALL SELECT 回数, [2枚目] AS 目 FROM 結果テーブル UNION ALL SELECT 回数, [3枚目] AS 目 FROM 結果テーブル; クエリ:次の目クロス集計 TRANSFORM Count(Q次の目.次回) AS 次回のカウント SELECT カードテーブル.カード FROM カードテーブル LEFT JOIN [SELECT Q今回.目 AS 今回, Q次回.目 AS 次回 FROM 目ユニオン AS Q今回, 目ユニオン AS Q次回 WHERE (((Q次回.回数)=Q今回!回数+1));]. AS Q次の目 ON カードテーブル.カード = Q次の目.今回 GROUP BY カードテーブル.カード PIVOT Q次の目.次回 In (1,2,3,4,5,6);

kintetsu
質問者

お礼

今回も回答ありがとうございます。 まだACCESS触り始めてすこしなので わかりやすい文章とSQL文の説明は とてもありがたいです。 いただいた回答を一文一文 調べながら入力してるのですが それぞれの単語の意味を理解するのが 精一杯です。 これらを組み合わせて操るには 知識と経験が必要だと感じました。 またACCESSについて質問すると思うので お時間があれば御回答していただけると 嬉しいです。 ありがとうございました。

その他の回答 (1)

noname#15065
noname#15065
回答No.2

 すでに素晴らしい回答がありますが、別解が無いと寂しいかなーと思い、テーブル1つとクエリ2つを追加してやってみました。  「n枚目テーブル」…ただ一つの文字型フィールド「n枚目」からなるテーブルで、その内容は以下の3レコードです。この3レコードの内容は、「結果テーブル」のフィールド名とまったく同一にする必要があります。 1枚目 2枚目 3枚目  クエリ「Q_今回と次回」…今回と次回の組合せを出力します。 SELECT DLookUp("[" & n枚目テーブル.n枚目 & "]","結果テーブル","[回数]=" & [回数]) AS 今回, DLookUp("[" & n枚目テーブル_1.n枚目 & "]","結果テーブル","[回数]=" & [回数]+1) AS 次回 FROM 結果テーブル, n枚目テーブル, n枚目テーブル AS n枚目テーブル_1 WHERE (((DLookUp("[" & [n枚目テーブル_1].[n枚目] & "]","結果テーブル","[回数]=" & [回数]+1)) Is Not Null));  集計結果のクエリ TRANSFORM Count(Q_今回と次回.次回) AS 次回のカウント SELECT Q_今回と次回.今回 FROM Q_今回と次回 GROUP BY Q_今回と次回.今回 PIVOT Q_今回と次回.次回;

kintetsu
質問者

お礼

回答ありがとうございます。 同じ問題でも解答が複数あるので 色々な方法を見るのは勉強になります。 いただいた回答を1つ1つ 調べてみることにします

関連するQ&A