• ベストアンサー

(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

  • (ACCESS/複雑です)次回出た数字を桁別&同桁の数毎に分けて記録し、表示したいのですが…

    こんばんは、非常にややこしい質問ですがよろしくお願いします。 1~19までの数字が書かれた19枚のカードから4枚を同時に引いて 出たカードの数字を記録していくデータベースを作るとき、 1~9(一の位)、10~19(十の位)というように それぞれの桁ごとにグループを分け、 ・一の位 1が出た次回、同桁(一の位)が1つの時を記録し表示 1が出た次回、同桁(一の位)が2つの時を記録し表示  ・  ・  ・  9が出た次回、同桁(一の位)が1つの時を記録し表示 9が出た次回、同桁(一の位)が2つの時を記録し表示 (可能ならば) 一の位が出なかった次回、同桁(一の位)が1つの時を記録し表示 一の位が出なかった次回、同桁(一の位)が2つの時を記録し表示 ・十の位も↑で書いた一の位と同じです 10が出た次回、同桁(一の位)が1つの時を記録し表示 10が出た次回、同桁(一の位)が2つの時を記録し表示  ・  ・  ・ というように今回出たそれぞれの数字を基準にして 次回出た数字を 桁べつに & 同桁の数ごと(1つの場合と2つの場合)に 分けて記録し、表示するクエリを作成するにはどうすればよいのでしょうか? ACCESSの知識が豊富な方、ご助力をよろしくお願いいたします。 --------------------------------------------- 今現在あるテーブル ・結果テーブル…引いた4枚の数字を記録      テーブル 「結果テーブル」    フィールド名 「回数」「1枚目」「2枚目」「3枚目」「4枚目」           (全て数値型)

  • ACCESSで同時に出た数字を数字別にカウントするにはどうすればよいのでしょうか?

    現在ACCESSの勉強をしています。 1~6までの数字が書かれた6枚のカードから3枚を同時に引いて 出たカードの数字を記録していくデータベースを作るとき、 ・同時に引いた3枚が1,3,6だった時 「1」のレコードに同時に出たカードの数字、3.6をカウント 「3」のレコードに同時に出たカードの数字、1.6をカウント 「6」のレコードに同時に出たカードの数字、1.3をカウント 数字(1~6)ごとに同時に引いた残り2枚の数字を 記録していくクエリを作りたいのですが このような集計をするには どのようにクエリを作成すればよいのでしょうか? 作成方法がわかる方、ご助力をよろしくお願いいたします。

  • ACCESSで2種類に分類してカウントするクエリを作りたいのですが…

    1~29までの数字が書かれた29枚のカードから5枚を同時に引き、 記録していくデータベースを作成するとき、 1~29が何回出てきたかを以下の種類によってカウントしたいのですが… ・同じレコードの他の数字の上一桁(一の位、十の位)の数が  「単数(1つ)」か「複数(2つ以上)」かによって  別カウントとして集計していきたいのですが。 (記録テーブル[全て数値型]) 回数 1枚目 2枚目 3枚目 4枚目 5枚目 ------------------------------------------ (1)    1    2    3    4    10 (2)    1    2    3    10    11 (3)    1    10   11    12   20 (各番号テーブル) フィールド名「各番号」 レコード数=29 上記のような記録のとき 回数(1)は一の位が4個出現(1.2.3.4)なのでカウントは複数      十の位が1個出現(10)なのでカウントは単数 回数(2)は一の位が3個出現(1.2.3)なのでカウントは複数      十の位が2個出現(10.11)なのでカウントは複数 回数(3)は一の位が1個出現(1)なのでカウントは単数      十の位が3個出現(10.11.12)なのでカウントは複数      二十の位が1個出現(20)なのでカウントは単数 要約すると一の位と十の位と二十の位に分けて 同時に引いた5枚のうち それぞれの位が1つなのか複数なのかによって カウントを別に分けて集計したいのですが… ・作りたいもの (単数複数カウントクエリ) カード   単    複 ←単、複ごとに出た数をカウント ----------------------- 1      1      2 2      2 3      2 : 10      1      2 11            2 12            1 : 20      1 : 上記のようなクエリはどうやれば作れるのでしょうか? ご回答、よろしくお願いします

  • (ACCESS)出た数字ごとに次回のレコードを抽出したいのですが…

    1~6までの数字が書かれた6枚のカードから3枚引き、 出たカードの数字を記録していく時 1,2,3,4,5,6それぞれの数字が出た次回(次行)のレコードを 抽出するクエリを作りたいのですが… (記録テーブル) 回数 1枚目 2枚目 3枚目 ---------------------------- (1)   1    2    6 (2)   2    5    6 (3)   1    4    5 (4)   3    5    6 上記の記録のとき、 1なら 1が出た次回にあたる、(2)回目と(4)回目のレコードを抽出。 ・1が出た次回のレコードを全て抽出 回数 1枚目 2枚目 3枚目 ---------------------------- (2)   2    5     6 (4)   3    4     5 2なら 2が出た次回にあたる(2)回目、(3)回目のレコードを抽出 ・2が出た次回のレコードを全て抽出 回数 1枚目 2枚目 3枚目 ---------------------------- (2)   2    5     6 (3)   1    4     5 3は今の所該当なし 4なら 4が出た次回にあたる(4)回目のレコードを抽出 5なら 5が出た次回にあたる(3)回目のレコードを抽出 6なら 6が出た次回にあたる、(2)回目、(3)回目のレコードを抽出。 といったように 1~6の数字をそれぞれ基準にして その数字が出た次回のレコードを抽出するクエリ(SQL文?)を 作成するにはどうすればよいのでしょうか?

  • ACCESSである数字が出なかった時、次回のレコードを抽出したいのですが

    1~19までの数字が書かれた19枚のカードから5枚を同時に引き、 記録していくデータベースを作成するとき、 A.一の位(1~9)が1つも出なかった時の次回記録(次行)のレコードを抽出するクエリ B.十の位(10~19)1つも出なかった時の次回記録(次行)のレコードを抽出するクエリ 上記2つのクエリを作りたいのですが… (記録テーブル) 回数 1枚目 2枚目 3枚目 4枚目 5枚目 ---------------------------------- (1)    1    4    5    7    9 (2)    1    2    3    10    12 (3)    10   12    13   16    18 (4)    1    2    3    4    5 (5)    5    6    7    15    16 上記の記録の時 A.一の位(1~9)が1つも出なかった時に該当するのは回数(3)なので その次回にあたる回数(4)を抽出 (クエリ1) 回数 1枚目 2枚目 3枚目 4枚目 5枚目 -------------------------------------- (4)    1    2    3    4    5 B.十の位(10~19)1つも出なかった時に該当するのは回数(1)と回数(4)なので それぞれの次回にあたる回数(2)、回数(5)を抽出 (クエリ2) 回数 1枚目 2枚目 3枚目 4枚目 5枚目 -------------------------------------- (2)    1    2    3    10    12 (5)    5    6    7    15    16 といったように 一の位が1つも出なかった次回のレコード、 十の位が1つも出なかった次回のレコードを 抽出するクエリ(SQL?)をそれぞれ 作成するにはどうすればよいのでしょうか? ご回答、よろしくお願いします。

  • オートインクリメントの数字について

    私はアクセスを使ってデータを管理しているものです。 管理番号をオートインクリメントしてるのですが、そこで問題が発生しています。 オートインクリメントでどんどん数字が増える状態になり、データが必要なくなってしまったのでそのデータを削除しました。 次に同じテーブルに新しいデータが入ってきたので、削除した後にフィールドを追加するとオートインクリメントする管理番号が数字の1からスタートするのではなく、昔、削除したフィールド数からカウントしてしまいます。 どうかアドバイス頂けないでしょうか? お願いします。

  • access2010行カウント→テーブル更新

    access2010についてのご相談です。 現在表彰システムの作成を行っています。 1 対象者テーブル・・・識別ID(主キー),氏名,性別など・・・ 2 表彰カウントテーブル・・・識別ID,表彰年度,該当大会名,成績・・・・ 上記二つのテーブルがあり,識別IDで結合し,下記のクエリを作成しています。 1 個人表彰クエリ・・・識別ID,表彰年度,氏名,性別,該当大会名,成績・・・・ 上記クエリには過去の大会で優勝した記録が羅列される形となります。 ここで,過去の優勝回数が3回→特別賞,2回なら→敢闘賞などと集計し,その結果をレポートにしたいと考えております。ただし同一年度に2つの大会で優勝(2行ある)したとしてもそれは,1回の優勝としてカウントしたいです。 個人表彰クエリのうち,識別ID・表彰年度でグループ化された行数をカウントし,最終表彰種類として対象者テーブルにフィールドを追加して更新をかけたりすれば良いのかなと考えております。 が,どのように実現するのか分からず頭をかかえております。 アドバイスをいただければ幸いです。よろしくお願いいたします。

  • accessのフィールドに10桁の数字は入らない??

    あるCSVからAccessのテーブルに読みこんだのですが 一部のフィールドで文字の欠落がありました。 元のCSVの内容どおりに、手入力で欠落した箇所に 値を入れようとしたのですが、どうも9ケタの数字は入るのですが 10桁の数字は入らないようでエラーが出ます。 ★メッセージは以下の通りです。  このフィールドに入力した値が正しくありません。  たとえば、数値型のフィールドに文字列を入力しました。 Accessの仕様として、数字の桁数制限があるのでしょうか? また、解決策は何かないでしょうか? XP2、ACCESS200です

  • ACCESSで質問です。

    ACCESSのフィールド内にコロンを入れる方法 Accessのテーブルの数値にカンマを入れたいです。 あるフィールドに下記のような数値が入っています。その数値に 数値二つ毎に:を入れたいのですが抽出条件等で可能でしょうか? MACアドレス 27ER6089JR12 → 27:ER:60:89:JR:12 33C01fkV3325 → 33:C0:1f:kV:33:25 テーブル(1)が最終的に必要なテーブルです。 テーブル(1) PC名 シリアル番号 リース会社 メーカー名 機種 導入日 リース期間 MACアドレス 導入テーブル PC名 リース会社 メーカー名 導入日 MACアドレス 追加テーブル PC名 シリアル番号 機種 リース期間 導入テーブルと追加テーブルをテーブル(1)に集約するように追加クエリを作成しました。 追加クエリで必要なフィールドを選択してテーブル(1)に反映させていますがMACアドレスのデータに:を追加しないと いけない為、ACCESS上のクエリ内でできれば対応したいと思っています。 抽出条件に記載等で解決できますでしょうか?

  • アクセス

    文献番号テーブルには、文献番号(主キー)、文献、著者名が並んでいます。 コメントテーブルには文献番号(数値型、空欄)、コメント、コメントID(主キー、オートナンバー)が並んでいます。 文献番号テーブルの文献番号キーを、コメントテーブルの文献番号(空欄)フィールドに落とし込む方法はないでしょうか?

専門家に質問してみよう