测试在触发器下的汇总
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, 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表全部改为表变量,三条结果全部一样,请问大家这是什么原因呢?
RID in (select RID in inserted) -----多个值
select @RID=RID from inserted -----1个值
只会记录最后一条记录
inserted中只有一条记录,测试中RID='RD20001'
你是说inserted表中的结果吗? 还是三条sql输出的结果?三条sql输出的结果是
RID TotalPrice
RD20001 3000
RD20001 2900
RD20001 2900