0

さて、これは少し奇妙に聞こえるかもしれませんが、それは私が作業しなければならないものです。

PowerShellを利用してAccess2007データベースへのクエリを実行する特別なインストーラーがあります

最初の表はプログラムのリストです。表の1つの列はprog_preであり、プログラムをインストールする前にインストールする必要があるものがあることを示しています。

pre_reqテーブルには、prog_idという列があります。これは、別のプログラムを最初にインストールする必要がある特定のプログラムの一意のIDです。また、プログラムテーブル内の一意のIDを参照するprog_pre列もあります。

私がやりたいのは、次のようなクエリを実行するときです。

 Select * 
 from program_table 
 WHERE ID = '3'

バーウェアであるプログラム3にはpre_reqがあるので、pre_reqテーブルもループしてprerequiredプログラムのIDを取得し、それをクエリに追加します。

これを行う方法はありますか、それとも単に2つのクエリを実行するだけで立ち往生していますか?

プログラムテーブル

-------------------------------------------------- -------------
ID prog_name prog_version prog_pre
1アクセス2007いいえ
2 Acrobat 2012 pro No
3バーウェア2012はい
4Fooware2012いいえ
5foomaker2012いいえ
-------------------------------------------------- --------------

pre_reqテーブル

-------------------------------------------------- --------------
id prog_id prog_pre
1 3 4
2 3 5
望ましい結果は、次のような配列になります
3バーウェア2012はい
4Fooware2012いいえ
5foomaker2012いいえ

フィールドprog_preはyesであったため、pre_Reqテーブルにリストされている2つのprog_preプログラムIDも含まれていました。

4

1 に答える 1

0

X-Zeroのコメントを読んで

Blockquote 最大レベル数がある場合は、手動で行うことができます。そうしないと、プログラム コードに行き詰まることになります。Access が再帰クエリをサポートしていないという言及を見てきましたが、これはあなたが望むものです。

さらに調査を行ったところ、私が求めていたのは再帰クエリであることがわかりました。また、X-Zero が正しかったこともわかりました。Access は再帰クエリをサポートしていません。

Access で再帰クエリを作成することはできますか?

お世話になりました X-Zero

于 2012-05-23T11:58:49.760 に答える