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

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

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

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Access

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

Q&A

解決済

1回答

304閲覧

複数項目が完全一致するSQL

wondercode

総合スコア4

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Access

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

0グッド

1クリップ

投稿2025/01/06 11:23

実現したいこと

複数項目が完全一致するSQL

-格納テーブル

PQ
Ad1
Ad2
Ad3
Bd1
Bd2
Bd100
-検索テーブル
R
----
d1
d2
d3
-検索テーブル内のデータすべてに一致するAを検出したい

データを格納しているaccessからExcelVBAでSQLでデータ取得しようとしています

発生している問題・分からないこと

SELECT文を書いているのですが、要求しているデータの取得ができません
複数項目が完全に一致するコードを書きたいです
アドバイス頂戴できれば幸いです
よろしくお願いします

該当のソースコード

sql = " SELECT t1.P " & _ "FROM 格納テーブル t1 " & _ "INNER JOIN 検索テーブル t2 " & _ "ON t1.Q = t2.R " & _ "GROUP BY t1.P " & _ ";"

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

Googleやteratail、Copilotに依頼したりしてみましたが狙いの結果が得られませんでした

補足

特になし

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

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

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

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

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

maisumakun

2025/01/06 12:50

> 複数項目が完全に一致するコードを書きたいです 現状のコードで、「どのように」その条件が抽出可能だと考えた状況でしょうか?
sazi

2025/01/07 00:03

「複数項目が完全一致」というのが曖昧です。 質問にどのような結果を求めたいのか追記して下さい。
sk.exe

2025/01/07 00:13

[格納テーブル]において、フィールド[P]とフィールド[Q]の値の組み合わせは常にユニークである(同一の組み合わせが重複するレコードが同時に格納されることはない)のでしょうか。
utm.

2025/01/07 03:08

質問文に記載のあるクエリーで取得できそうな気がしますが、 なにか解釈の余地があるんでしょうか
utm.

2025/01/07 03:10

> 複数項目が完全に一致 なるほど。検索テーブルに現れる回数が件数の指定になっているという意味か
wondercode

2025/01/07 10:27

みなさんからたくさんの回答を頂戴して驚いております. ありがとうございます. 返信が遅くなり申し訳ありません、情報が足らないうえに表現がわかりにくい点も申し訳ありません. 現状のコードでは格納テーブルからフィールド[P], [Q]{{A, d1}, {A, d2}, {A, d3}, {B, d1},{B, d2}, {B, d100}}と検索テーブルのフィールド[R]{d1,d2,D3}で演算を行い, その演算結果から{{A, d1}, {A, d2}, {A, d3}}を取り出し, 値"A"を取り出すことを目指していました. 取り出せない気がするのは分かるのですが、取り出し方がわからず質問させて頂いた次第です. 格納テーブルはおっしゃる通りフィールド[P], [Q]はユニークで複合キーとして機能します.
xebme

2025/01/07 11:17

関係の除算を調べてください。質問の意図と一致していますか?
wondercode

2025/01/07 11:40

回答ありがとうございます. 関係の除算調べてみました. 参考にしたページ https://qiita.com/hidesroom/items/62374c29232ab1b15ca3 意図と近いですが、余りが出てもヒットする点が一致していません. ですが、関係の除算はとても興味深いです.ゆっくりと読ませていただきます.
utm.

2025/01/07 16:09

なるほど!格納テーブルの Aが{d1, d2, d3}を持ってるって考えだったのか
guest

回答1

0

ベストアンサー

格納テーブルの P, Q はユニークだとして、

sql

1SELECT P 2FROM 3 (SELECT T1.P, Count(T1.Q) AS Q_Count, Count(T2.R) AS R_Count 4 FROM 格納テーブル T1 LEFT JOIN 検索テーブル T2 ON T1.Q = T2.R 5 GROUP BY T1.P) 6WHERE Q_Count = R_Count;

格納テーブルと検索テーブルを外部結合して、同一P内のQの件数とRの件数が一致すれば完全一致とみなせる。

投稿2025/01/06 23:48

編集2025/01/06 23:53
hatena19

総合スコア34107

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

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

wondercode

2025/01/07 11:36

回答ありがとうございます. 試したところ目的のAを算出でき、解決しました! 悩んでいたものが溶けてよかったです ベストアンサーに選ばせていただきます.
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.34%

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

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

質問する

関連した質問