向各位请教个问题:
我现在写一个月结的存储过程A,先从库存档里(表b)读取一个物料s,再根据s获得历史表l(此表保存每次月结的数据。从而可以做为下次月结的期初库存。)中的期初库存。再计算物料s在这一个月的出入库,盘点,调拨等,最后得到的数量和当前的日期插入到表s中。
每一个物料完成这个过程要2秒,我的物料有9000个。这种算法肯定没意义。请各位指点指点。谢谢!!!

解决方案 »

  1.   

    为什么每一个物料要分开处理,同时处理,group by 不就可以吗?
      

  2.   

    --Try
    Insert Into HistoryStorage
    (
    MaterialID,
    HSStoreage,
    [Date]
    )
    select
    A.MaterialID,B.HSStoreage+A.MonthStorage,Getdate() as [Date]
    from
    (
    select
    MaterialID,
    sum(InWareHouse-OutWareHous+Others) as MonthStorage
    from
    Storage
    group by
    MaterialID
    )A
    left join
    (
    select
    MaterialID,
    HSStoreage
    from
    HistoryStorage B
    where
    Datediff(month,[Date],dateadd(month,-1,getdate()))=0
    )B
    on
    A.MaterialID=B.MaterialID