Access (VBA)

Access VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Pro : Access 2016)
一本のスクリプトに纏めたい
投稿日時: 20/08/28 14:36:53
投稿者: S.Kos

こんにちは、みなさま。
 
一般機能の板かとも思いますが、こちらに記します。
不適切なら、その旨お知らせください。
 
レコードにはint型の三つのフィールド FilIndex、FilYear、FilData があります。
FilYearには2015から2020までの数値が入り、どの数値も200個前後、全1200個前後のレコード数です。
FilDataには2、4、8、16、32など、様々な数値が入ってます。
FilOndexは15010101から20090999までのいずれかが入っています。
 
次の条件でレコードを取得したい、と考えています。
 FilYear = 2020, Fildata = 8 であるレコードのFiIndexと、
 同じ値のFilIndexを持つレコードで、
 FilDataの値が16以上であるレコード
 
二本のSQLスクリプトを発行すれば取得できることは明らかです。
これを一本のスクリプトで取得できませんか・・?

回答
投稿日時: 20/08/28 15:15:22
投稿者: sk

引用:
FilYear = 2020, Fildata = 8 であるレコードのFiIndexと、
同じ値のFilIndexを持つレコードで、
FilDataの値が16以上であるレコード

( SQL ビュー)
------------------------------------------------------------
SELECT [テーブル名].*
FROM [テーブル名]
INNER JOIN (SELECT [テーブル名].[FilIndex]
            FROM [テーブル名]
            WHERE [テーブル名].[FilYear] = 2020
              AND [テーブル名].[FilData] = 8) AS [Q1]
ON [テーブル名].[FilIndex] = [Q1].[FilIndex]
WHERE [テーブル名].[FilData] >= 16;
------------------------------------------------------------
(テーブル名は適宜修正すること)
 
以上のような選択クエリと同様の結果を得たい、ということでしょうか。

投稿日時: 20/08/29 10:53:47
投稿者: S.Kos

skさん、ご教示のほどありがとうございます。
 
NNER JOIN (SELECT ・・・との記述は、思いつきませんでした。
 
副問い合わせを書いて、返り値をひとつにしてね、と怒られたところで試行が止まってました。
早速やってみましょう。
 
いったんここで閉じます