update 金额汇总 set 收入数08 = 收入数, 库存数08 = 库存07 +收入数 - 发出数, 发出数08 = 发出数 
from (select IsNull(sum(b.合计金额), 0)  收入数, IsNull(sum(c.合计金额), 0) 发出数, a.品名代号 from 物资 a 
Left Join (Select 日期,品名代号,合计金额 from 入库明细 Where month(日期) =  month(GetDate()) 
Union all Select 日期,品名代号,合计金额 from 一进一出 Where month(日期) =  month(GetDate())) b On A.品名代号 = b.品名代号 
Left Join (Select 日期,品名代号,领料金额 from 出库明细 Where month(日期) =  month(GetDate()) 
Union all Select 日期,品名代号,合计金额 from 一进一出 Where month(日期) =  month(GetDate())) c On A.品名代号 = c.品名代号 group by a.品名代号) d 
where 金额汇总.品名代号 = d.品名代号

解决方案 »

  1.   

    你month(日期) =  month(GetDate()) 有问题,去年的同月也找出来了。
    update 金额汇总 set 收入数08 = 收入数, 库存数08 = 库存07 +收入数 - 发出数, 发出数08 = 发出数 
    from (select IsNull(sum(b.合计金额), 0)  收入数, IsNull(sum(c.合计金额), 0) 发出数, a.品名代号 from 物资 a 
    Left Join (Select 日期,品名代号,合计金额 from 入库明细 Where datediff(month,日期,getdate())=0 
    Union all Select 日期,品名代号,合计金额 from 一进一出 Where datediff(month,日期,getdate())=0) b On A.品名代号 = b.品名代号 
    Left Join (Select 日期,品名代号,领料金额 from 出库明细 Where datediff(month,日期,getdate())=0 
    Union all Select 日期,品名代号,合计金额 from 一进一出 Where datediff(month,日期,getdate())=0) c On A.品名代号 = c.品名代号 group by a.品名代号) d 
    where 金额汇总.品名代号 = d.品名代号
      

  2.   

    update 金额汇总 set 收入数08 = 收入数, 库存数08 = 库存07 +收入数 - 发出数, 发出数08 = 发出数 
    from (select IsNull(sum(b.合计金额), 0)  收入数, (select IsNull(sum(c.合计金额), 0) 发出数, a.品名代号 from 物资 a 
    Left Join (Select 日期,品名代号,合计金额 from 入库明细 Where month(日期) =  month(GetDate()) 
    Union all Select 日期,品名代号,合计金额 from 一进一出 Where month(日期) =  month(GetDate())) b On A.品名代号 = b.品名代号 
    Left Join (Select 日期,品名代号,领料金额 from 出库明细 Where month(日期) =  month(GetDate()) 
    Union all Select 日期,品名代号,合计金额 from 一进一出 Where month(日期) =  month(GetDate())) c On A.品名代号 = c.品名代号 group by a.品名代号) d,  金额汇总 e
    where e.品名代号 = d.品名代号
    愉快的登山者       ⊙
    ◢◣◢◣◢◣