UPDATE 固定资产库存表 SET 数量= SUM(B.数量 + A.数量) FROM 固定资产库存表 B JOIN 固定资产采购入库明细 A ON A.资产唯一值=B.资产唯一值
怎么修改!

解决方案 »

  1.   

    UPDATE t2
    set 数量=t1.数量
    from 
    (select b.资产唯一值 ,SUM(B.数量 + A.数量) as 数量
     FROM 固定资产库存表 B 
     JOIN 固定资产采购入库明细 A ON A.资产唯一值=B.资产唯一值
    group by b.资产唯一值)t1
    inner join 固定资产库存表 t2 on t1.资产唯一值=t2.资产唯一值
      

  2.   

    UPDATE b
    set 数量=b.数量+a.数量
     FROM 固定资产库存表 B 
     JOIN (select 资产唯一值,SUM(数量) as 数量 from 固定资产采购入库明细  group by 资产唯一值) A ON A.资产唯一值=B.资产唯一值
    还是这样?
      

  3.   

    UPDATE b
    set 数量=isnull(b.数量,0)+isnull(a.数量,0)
     FROM 固定资产库存表 B 
     JOIN (select 资产唯一值,SUM(数量) as 数量 from 固定资产采购入库明细  group by 资产唯一值) A ON A.资产唯一值=B.资产唯一值
      

  4.   


    IF (SELECT 1 FROM 固定资产库存表 WHERE 资产唯一值=@资产唯一值)
    BEGIN
          UPDATE B
    SET 数量=A.数量+B.数量
     FROM 固定资产库存表 B 
     JOIN (SELECT 资产唯一值,SUM(数量) AS 数量 FROM 固定资产采购入库明细  
    GROUP BY 资产唯一值) A ON A.资产唯一值=B.资产唯一值ELSE     
          INSERT INTO 固定资产库存表 (资产唯一值,插入时间,公司编号,公司名称,部门编号,部门名称,存放地,资产编号,资产名称,型号规格,单位,数量,单价)
          SELECT 资产唯一值,制单日期,公司编号,公司名称,部门编号,部门名称,存放地,资产编号,资产名称,型号规格,单位,数量,单价
          FROM  固定资产采购入库表头 A  JOIN  固定资产采购入库明细 B ON A.单号=B.单号  
          WHERE A.单号=@单号
    END
    在应使用条件的上下文(在 'BEGIN' 附近)中指定了非布尔类型的表达式。
    关键字 'ELSE' 附近有语法错误。不可以这样写吗?
      

  5.   

     还是要加EXISTS 和 NOT EXISTS