日期:2014-05-18  浏览次数:20604 次

SQL计算物料需求最佳效率
从SQL7一直用到SQL   2008,一直以来形成的思想,总觉得SQL不如ORACLE。
最近没事研究一下几个大型ERP的关键算法。   大家有兴趣不妨试试。
也解决我多年来的困扰,在此先谢过。有分送。

                    A(1PCS)
      __|__
                    |           |
B(2PCS)   C(3G)
              __|__
            |           |
        C(1G)       D(2G)

已知2009-09-26客户需要A(2000PCS),A是成品,B是自制品,C、D是原材料。

订单类型 日期   料号           数量         状态
销售单 2009-09-27       A         2000PCS         已下单
仓库 2009-08-10         B     1000PCS       现有库存


如何展开此BOM?如何计算MRP。
create   table   bom_a(
parentno   varchar(20),
qty numeric(5,2),
unit   char(5)
)

INSERT   bom_a   SELECT   'A ',1.0, 'PCS '
UNION   ALL       SELECT   'B ',1.0, 'PCS '

create   table   bom_b(
parentno   varchar(20),
childno   varchar(20),
qty numeric(5,2),
unit   char(5)
)

INSERT   bom_b   SELECT   'A ', 'B ',2.0, 'PCS '
UNION   ALL       SELECT   'A ', 'C ',3.0, 'G '
UNION   ALL       SELECT   'B ', 'C ',1.0, 'G '
UNION   ALL       SELECT   'B ', 'D ',2.0, 'G '

select   *   from   bom_a  
select   *   from   bom_b  
/*
parentno                           qty                                                                           unit
--------------------   ---------------------------------------   -----
A                                         1.00                                                                         PCS    
B                                         1.00                                                                         PCS    

(2   行受影响)

parentno                           childno                             qty