質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

Q&A

解決済

2回答

2737閲覧

一対多関係にあるテーブルで親テーブルのそれぞれのレコードが子テーブルで何回呼び出されたかをカウントする

YusukeMiyake

総合スコア17

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

0グッド

0クリップ

投稿2019/01/13 06:45

編集2019/01/13 07:42

MS Accessでデータベースを作成しています。
データ分析のため、一対多の関係にある二つのテーブル(親テーブル[一側]、子テーブル[多側])で、親テーブルの各レコードが子テーブルの中で何回呼び出されたかをカウントする方法を教えていただけませんか?
下に図は例です。親テーブルは主キーに複合キーを持っており、子はそれを外部キーにして親テーブルのデータを呼び出しています。
イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sazi

2019/01/13 07:28

> 親テーブルの各レコードが子テーブルの中で何回呼び出されたか ちょっと意味が掴めません。子から見ると親は1にしかなりませんけど。
YusukeMiyake

2019/01/13 07:44

コメントありがとうございます。たった今説明を追加しました。呼び出すという言葉が適切でなかったかもしれないのですが、意味としては、親テーブルの主キーが、外部キーとして何回子テーブルで使用されたかということです。
hatena19

2019/01/13 13:25

親テーブルと子テーブルのデータ例を提示して、その場合の欲しい結果の出力例も出してもらうと何をしたいのか理解できるかも。
guest

回答2

0

ベストアンサー

ご希望のことは下記のようなことですか?
違うなら、下記のような感じで具体的なデータを出して例示してください。

親テーブル

手続きID顧客ID情報
11a
12b
13c
21d
22e
31f

子テーブル

手続きID顧客ID情報
11A
11B
11C
12D
12E
21F

sql

1SELECT 2 親テーブル.手続きID, 3 親テーブル.顧客ID, 4 Count(子テーブル.手続きID) AS カウント 5FROM 6 親テーブル LEFT JOIN 子テーブル 7 ON 親テーブル.顧客ID = 子テーブル.顧客ID AND 親テーブル.手続きID = 子テーブル.手続きID 8GROUP BY 親テーブル.手続きID, 親テーブル.顧客ID;

出力結果

手続きID顧客IDカウント
113
122
130
211
220
310

投稿2019/01/13 14:23

hatena19

総合スコア33620

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

YusukeMiyake

2019/01/14 08:34

回答ありがとうございます。状況としてはまさにこのことなのです。このSQLで試してみたのですが、結局複合キーのカウントができず、親テーブルに新たに単独の主キー(連番)を持たせることで目的を達成することができました。
hatena19

2019/01/15 07:26 編集

解決できたということは分かったが、結局、何をしたかったのかいまだに不明です。 つまり、回答者にとっても、後からの閲覧者にとっても何の意味もないゴミスレッドということになります。
guest

0

子のデータから親を参照するというのが、純粋なSQLでの話でしたら無理です。
ユーザー関数を使用して、その中でカウントするという事なら多少はできるかもしれません。
基本、VBAでの処理は必須になると思います。

そもそも、どの様な事をしたいが為にそんなことをするのでしょうか?
あてずっぽうですけど、子テーブルに一意キーを設定する事で解決しそうな気がしますけど。

投稿2019/01/13 08:26

編集2019/01/13 08:28
sazi

総合スコア25138

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

YusukeMiyake

2019/01/14 08:38

回答ありがとうございます。やりたいこととしてはhatena19さんが説明してくださっていることなのです。結局、複合キー出ない主キーを新たに親テーブルに持たせ、子テーブルにも外部キーとして新たにそれを持たせ、子テーブルのデータに集計のカウントを使うことで解決しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問