update TD_IMPORTANT_EXP_DATA set(sum_val, sum_qty, sum_unit)=
(SELECT (SELECT SUM(VAL)
          FROM TD_IMPORTANT_EXP_DATA
          WHERE YEAR = A.YEAR AND MONTH <= A.MONTH) AS sum_val,
          (SELECT SUM(QTY1)
         FROM TD_IMPORTANT_EXP_DATA
         WHERE YEAR = A.YEAR AND MONTH <= A.MONTH) AS sum_qty,
          (SELECT SUM(VAL) * 1.0 / SUM(QTY1)
         FROM TD_IMPORTANT_EXP_DATA
         WHERE YEAR = A.YEAR AND MONTH <= A.MONTH) AS sum_unit
FROM TD_IMPORTANT_EXP_DATA A)不知道为什么总是说第一行‘(’附近有错误。请各位帮忙看下。

解决方案 »

  1.   

    UPDATE  TD_IMPORTANT_EXP_DATA
    SET     sum_val = ( SELECT  SUM(VAL)
                        FROM    TD_IMPORTANT_EXP_DATA
                        WHERE   YEAR = A.YEAR
                                AND MONTH <= A.MONTH
                      ) ,
            sum_qty = ( SELECT  SUM(QTY1)
                        FROM    TD_IMPORTANT_EXP_DATA
                        WHERE   YEAR = A.YEAR
                                AND MONTH <= A.MONTH
                      ) ,
            sum_unit = ( SELECT SUM(VAL) * 1.0 / SUM(QTY1)
                         FROM   TD_IMPORTANT_EXP_DATA
                         WHERE  YEAR = A.YEAR
                                AND MONTH <= A.MONTH
                       )
      

  2.   

    update tb set a=col,b=col1 from .....where 
      

  3.   

    set(sum_val, sum_qty, sum_unit) 不能这样写set sum_val=?,sum_qty=?,sum_unit=?
      

  4.   

    语句不对
    update TD_IMPORTANT_EXP_DATA 
    set sum_val=(SELECT SUM(VAL) FROM TD_IMPORTANT_EXP_DATA WHERE YEAR = A.YEAR AND MONTH <= A.MONTH),
    sum_qty=(SELECT SUM(QTY1) FROM TD_IMPORTANT_EXP_DATA WHERE YEAR = A.YEAR AND MONTH <= A.MONTH),
    sum_unit=(SELECT SUM(VAL) * 1.0 / SUM(QTY1) FROM TD_IMPORTANT_EXP_DATA WHERE YEAR = A.YEAR AND MONTH <= A.MONTH)
      

  5.   

    注意update语法,update table set column = value,column = value,..... where......
      

  6.   

    但是即使以其中一个为例UPDATE TD_IMPORTANT_EXP_DATA
    SET sval= (select (SELECT SUM(VAL)
                       FROM TD_IMPORTANT_EXP_DATA
                       WHERE YEAR = A.YEAR AND MONTH <= A.MONTH)
             FROM TD_IMPORTANT_EXP_DATA A )
    这样子还是不行啊,他说第五行的‘(’附近有错误
      

  7.   

    UPDATE TD_IMPORTANT_EXP_DATA SET sval= (select (SELECT SUM(VAL)
      FROM TD_IMPORTANT_EXP_DATA
      WHERE YEAR = A.YEAR AND MONTH <= A.MONTH)
      FROM TD_IMPORTANT_EXP_DATA A )大家快帮我看看。我觉得是因为我用了两个括号,可是我的逻辑关系就是循环必须用两个所以真的不知道该怎么改了
      

  8.   

    表里sval字段里更新为此月份之前所有月份的val字段值累加的结果值
      

  9.   

    year month val sval
    2007 1     10   10
    2007 2     100  110
    2007 3     1000 1110
    就是这个样子的
      

  10.   

    这样子写
    UPDATE a SET sval= (SELECT SUM(VAL) FROM TD_IMPORTANT_EXP_DATA WHERE YEAR = a.YEAR AND MONTH <= a.MONTH)
    from TD_IMPORTANT_EXP_DATA a