测试在触发器下的汇总
1, select RID,sum(price) as totalPrice from Produce_detail 
      where RID in (select RID in inserted) group by RID2, declare @RID varchar(50)
   select @RID=RID from inserted
   select RID,sum(price) as totalPrice from Produce_detail 
      where RID =@RID group by RID3, select RID,sum(price) as totalPrice from Produce_detail 
      where RID ='RD20001' group by RID//在1,2中RID就是等于RD20001,第3条是显示给值,以测试结果测试结果
第一条的结果不等于第二条和第三条的结果
第二条的结果和第三条的结果一样然后我把inserted表的数据放到一个表变量中.
然后再把上面的三条语句的inserted表全部改为表变量,三条结果全部一样,请问大家这是什么原因呢?

解决方案 »

  1.   


    RID in (select RID in inserted)  -----多个值
    select @RID=RID from inserted    -----1个值
      

  2.   

    select @RID=RID from inserted
    只会记录最后一条记录
      

  3.   


    inserted中只有一条记录,测试中RID='RD20001'
      

  4.   

    where RID in (select RID in inserted)这样可以?
      

  5.   


    你是说inserted表中的结果吗? 还是三条sql输出的结果?三条sql输出的结果是
    RID        TotalPrice
    RD20001    3000
    RD20001    2900
    RD20001    2900
      

  6.   

    inserted这张表有多少个值,是不是就只RD20001这一个值,只有这一个值,上面三个语句才会相等的。