求一触发器写法(100分)

  • 主题发起人 主题发起人 3boy
  • 开始时间 开始时间
3

3boy

Unregistered / Unconfirmed
GUEST, unregistred user!
是这样的,有2个表,其中一个表中有ID1,BNO,FNumber,另一个表中有ID2,BNO,ID1,FNumber现在要求如下,当我的表2 增加一条记录时找出表一相同的BNO,减去表1的FNumber,使之加入表二,同时如果表1的FNumber不够,则减去下一个FNumber,直至表2的数量全部减完为止,要求触发器解决。
描述:
也就是表二的Fnumber为1000,而表1的FNumber 分别为200,500,2000则要把表二的记录复制成3条。
 
等太久了
 
没明白题目什么意思
 
上边没有讲清楚吗?
举例:
现在有表2中要增加一条记录,其中Fnumber=3000,BNO=1
表一中BNO为1的有记录3条,现在不用手工的方法实现,表二自动找出表1的BNO=1的记录
将表1的ID写入表2同时减去表1的FNUmber,直到全部分配完为止
表1记录
----------------------------------------------
ID1 FNumber BNO
1 300 1
2 400 1
3 500 1
表二要插入的记录
BNO =1 FNUmber=1000
要达到
表2
ID2 ID1 FNumber BNo
1 1 300 1
2 2 400 1
3 3 300 1
表1
ID1 FNUmber BNO
1 0 1
2 0 1
3 200 1
的效果,要求在表2中创建一个这样的触发器
 
wait for you
 
你应该建表一时建一个触发器,表二相应建立相应的记录,然后
再更新就行了,不用触发器了
select sum(fnumber) as sumvalue from tab1 where bno=1
update table1 set fnumber=sumvalue-输入值 where id1=(select max(id1) from table1 where bno=1;
update tabl2 set fnumber=fnumber-(sumvalue-输入值) where id2=....
 
我要触发器,现在就是用存储过程完成的
 
同时如果表1的FNumber不够,则减去下一个FNumber,直至表2的数量全部减完为止
没看懂[:)]
 
没看懂[:)]
存储过程可以改成触发器
 
意思就是如果表二增加的数量在表1的几条数据中,如果不能将一条记录的数量完全减出去那么就要
找到下一条记录用下一条记录的数量去减,直到表2的数量全部以表一的数量全部填充完为止。
 
后退
顶部