1

我的目标是:我有三个表dev1,PICK1,rul1,我需要我的信息在它们之间进行交互,一个例子是:根据select rul1 table的结果,从dev1 table中取出某些行并将它们插入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上更新,我想这一定是每次我运行过程的时候,但我不知道如何嵌套存储过程或

如果这可以通过其他方法完成。

欢迎任何帮助

非常感谢您

4

0 回答 0