问题不知所云,好像逻辑上都自相矛盾的
在表A中只有状态列的值为3,才能插入结果表B中
呵呵,怎么A表里面也有状态是1 的行呢 ??

解决方案 »

  1.   

    表A     如下 
      pid       demand     workstatus   
      1             2                   3 
      1             3                   3 
      1             4                   3 
      2             2                   3 
      2             3                   3 
      2             4                   1 
      3             2                   3 
      3             3                   3
    表B   如下 
      
      pid       demand     workstatus   
      1             2                   3 
      1             3                   3 
      1             4                   3 
      2             2                   1 
      2             3                   1 
    两个表   关系是:在表A中只有状态列的值为3,才能插入结果表B中,如,2  4   1 则在表B中没有此条数据。
      如果表A的状态为3则表示A:A结束,如果所对应的pid有一个为1则表示A:A未结束中,如果全是1则表示A:A未开始
      而表B中同是也有状态则只能显示表B中的状态,同样如果表A中的是3表B中有状态是1则B:B未结束,是3则:B结束。显示所有A中的数据 并加上状态 结果应该为   pid       demand             workstatus   
      1             2                  B结束
      1             3                  B结束
      1             4                  B结束
      2             2                  B未结束中
      2             3                  B未结束中
      2             4                  A未开始
      3             2                  A未结束中
      3             3                  A未结束中
      

  2.   

    在A表建触发器,其他的就不用管了,符合条件的话,sql 自己帮你插入 b 表CREATE TRIGGER test ON a
    FOR update 
    --以上是命名,其 test 是触发器的名字,a 是表名 
    --update是当对表 a 进行更新的时候触发 
    AS 
    BEGIN 
        DECLARE @a1 int
        DECLARE @a2 int
        DECLARE @a3 int

        SELECT @a1=pid,@a1=demand,@a1=workstatus FROM INSERTED 
        if @a1=a and @a2=2 and @a3=3 --加上你的判断条件 比如 a1=xx a2=yy a3=zz
    insert into b (b1,b2,b3) values(a1,a2,a3)

    end 
      

  3.   

    如果所对应的pid有一个为1则表示A:A未结束中,如果全是1则表示A:A未开始 
    PID 都只有一个,哪来全部和一个的区分,而且没有指明是哪个表的。