私の目標は次のとおりです。3つのテーブルdev1、PICK1、rul1があり、それらの間で情報を相互作用させる必要があります。例は次のとおりです。selectrul1テーブルの結果に従って、dev1テーブルから特定の行を取得し、PICK1に挿入します。
次に、テーブルdev1の行を更新して、rul1からの次の選択で再度選択されないようにする必要があります。
テーブルの構造は次のとおりです。
dev1 {
[delivery]
[inlist]
[scot]}
rul1{
[group],
[field],
[logical_condition]
[value]}
PICK1 {
[id_delivery]
[group_num]
[lock]}
これらは私がrul1に持っている値の一部です
[group] [field] [logical_condition] [value]
1 scot = 1
1 inlist = 0
2 scot = 2
2 inlist = 0
3 scot = 3
次に、このストアドプロシージャを実行すると、次のようになります。
BEGIN
DECLARE @ max int, @ count int<br />
SET @ count = 1<br />
SELECT @ max = max ([group]) from rul1 group by [group]
while (@ count <= @ max)<br />
BEGIN<br />
select field + '' + logical_condition + '' + value as [rule] from rul1 where [group]= @count<br />
SET @ count = (@ count + 1)<br />
END
END
各グループ(1、2、3)についてこの結果が得られます。
scot = 1
inlist = 0
scot = 2
inlist = 0
scot = 3
次に、これらの結果を文字列に入れて、「where」句の一部にして、dev1から正しい行を選択し、PICK1に挿入します。
次に、dev1で更新します。これは、プロシージャのwhileを実行するたびに発生する必要があると思いますが、ストアドプロシージャをネストする方法がわかりません。
これが他の方法で完了できる場合。
すべての支援を歓迎します
どうもありがとうございます