我现在在做一个材料合计表(名字为RH_MAT_SUM)的触发器,有以下三张表。
1.投入材实绩表 RH_MAT_RESULT里记录的是投入材的消耗量,字段为
处理号RH_NO 投入时刻(charge_time) 材料消耗1(M_WGT1) 材料消耗2(M_WGT2)...材料消耗14(M_WGT14)
处理号和投入时刻作为主键
2.命名实绩表 RH_BIN_RESULT记录的是料仓号里料仓的名称,字段为
处理号RH_NO 料仓号BIN_NO(范围是 1~14) 材料名称 M_NAME
处理号作为主键
3.材料合计表(名字为RH_MAT_SUM)的字段为
处理号RH_NO 投入材名称MAT_NAME 投入材消耗量MAT_WGT
处理号作为主键
说明:材料消耗1(M_WGT1)里放的是1号料仓的消耗量(后面13个代表的含义以此类推),1号料仓放的材料名称是放在命名实绩表RH_BIN_RESULT里的材料名称 M_NAME里。(根据处理号和料仓号BIN_NO为“1”进行访问)要求:每在投入材实绩表 RH_MAT_RESULT里插入一条记录,自动更新材料合计表(名字为RH_MAT_SUM)里的数据(累加),如果没有记录则自动添加。如果投入材名称没有在命名实绩表中,则报警(这部分预留代码)。触发器流程:
在插入投入材实绩表 RH_MAT_RESULT里插入一条记录后,根据M_WGT1...M_WGT14的赋值情况,(实际插入时M_WGT1...M_WGT14里可能只有其中的几个被赋值)根据处理号NO在命名实绩表 RH_BIN_RESULT中查找相应的材料名称 M_NAME,如果没有找到则报警。然后在材料合计表RH_MAT_SUM根据处理号NO更新相应材料的消耗量(相加),如果没有则自动插入该材料的消耗量。难点:如何判断M_WGT1...M_WGT14的赋值情况?请各位给出具体代码?谢谢。
1.投入材实绩表 RH_MAT_RESULT里记录的是投入材的消耗量,字段为
处理号RH_NO 投入时刻(charge_time) 材料消耗1(M_WGT1) 材料消耗2(M_WGT2)...材料消耗14(M_WGT14)
处理号和投入时刻作为主键
2.命名实绩表 RH_BIN_RESULT记录的是料仓号里料仓的名称,字段为
处理号RH_NO 料仓号BIN_NO(范围是 1~14) 材料名称 M_NAME
处理号作为主键
3.材料合计表(名字为RH_MAT_SUM)的字段为
处理号RH_NO 投入材名称MAT_NAME 投入材消耗量MAT_WGT
处理号作为主键
说明:材料消耗1(M_WGT1)里放的是1号料仓的消耗量(后面13个代表的含义以此类推),1号料仓放的材料名称是放在命名实绩表RH_BIN_RESULT里的材料名称 M_NAME里。(根据处理号和料仓号BIN_NO为“1”进行访问)要求:每在投入材实绩表 RH_MAT_RESULT里插入一条记录,自动更新材料合计表(名字为RH_MAT_SUM)里的数据(累加),如果没有记录则自动添加。如果投入材名称没有在命名实绩表中,则报警(这部分预留代码)。触发器流程:
在插入投入材实绩表 RH_MAT_RESULT里插入一条记录后,根据M_WGT1...M_WGT14的赋值情况,(实际插入时M_WGT1...M_WGT14里可能只有其中的几个被赋值)根据处理号NO在命名实绩表 RH_BIN_RESULT中查找相应的材料名称 M_NAME,如果没有找到则报警。然后在材料合计表RH_MAT_SUM根据处理号NO更新相应材料的消耗量(相加),如果没有则自动插入该材料的消耗量。难点:如何判断M_WGT1...M_WGT14的赋值情况?请各位给出具体代码?谢谢。
解决方案 »
- 更新列字段问题
- 商务智能实施调研问卷
- [高分]如何在数据库上实现容易发生(ORA-01000)最多允许打开的游标数错误的环境?
- 求检索表的某一字段上相同数据的sql语句
- 找oracle数据库的相关特点(要运用到论文中的)
- 新手提问关于不能IMP的问题
- 有没有办法通过修改oracle数据库参数来限制查询返回的记录行数?(不改变sql语句)
- 我想登陆enterprise manager console,我选择的是:oracle manager server,但是。。。
- 谁能帮我看一下我写的存储过程,老是说有编译错误,可又不给出错误的具体地方?我找了半天也找不到。
- oracle数据库已经建好了
- 求助啊,高手们
- 这个SQL语句怎么写?
加入自治事务就可以了