当前位置: 代码迷 >> Sql Server >> 下订单后触发器或存储过程自动生成BOM表,比较复杂(邹大哥、赵大哥及各大各大哥多帮忙)解决办法
  详细解决方案

下订单后触发器或存储过程自动生成BOM表,比较复杂(邹大哥、赵大哥及各大各大哥多帮忙)解决办法

热度:160   发布时间:2016-04-24 09:42:54.0
下订单后触发器或存储过程自动生成BOM表,比较复杂(邹大哥、赵大哥及各大各大哥多帮忙)
订单表身TF_PO字段如下
PONO            PRDNO       MARK             QTY       PRICE......
PO14001      SPC0001       LOG1             200        20

BOM表头MF_BOM
BOM_ID            DEP       QTY
SPC0001->      001            1
XMC0009->      001            1
XMC0001->      001            1

BOM表身TF_BOM
BOMID              PRDNO      PRDNAME   QTY       MARK
SPC0001->     A001            AAAAAAA       20         LOG1
SPC0001->     A002            BBBBBB       30          LOG1
SPC0009->     A001            AAAAAAA       20          LOG9
SPC0009->     A002            BBBBBB       30           LOG9
现在想在下订单,当表身很多料号COPY取前3位大类第一个BOM表的表身数据,只是MARK值不一样
如下SPC0025料号MARK值是 LOGPL,则表身取SPC0001的BOM表,MARK值取LOGPL

现在如下订单需要产生如下BOM表
PONO            PRDNO       MARK             QTY       PRICE......
PO14001      SPC0025       LOGPL             400        20
则需要产生BOM表如下
BOM表头MF_BOM
BOM_ID            DEP       QTY       MARK
SPC0025->      001            1        LOGPL
BOM表身TF_BOM
BOMID              PRDNO      PRDNAME   QTY       MARK
SPC0025->     A001            AAAAAAA       20         LOGPL
SPC0025->     A002            BBBBBB       30          LOGPL


自动产生BOM表好点,主要是表身如何产生,不知怎样关联啊。

------解决思路----------------------
1)只要 FOR INSERT,DELETE 和 UPDATE 没关系
2)先单独判断是否存在,存在就退出;没必要在INSERT 中判断。
3)SUBSTRING(i.prd_no,1,3),前缀是3位吧。
  相关解决方案