请各位高手指导一下:
例如我有一个材料表:biao
表字段和内容如下
材料名称 季度 价格
a 第三季度 0
a 第二季度 20
a 第一季度 10
b 第三季度 0
b 第二季度 21
b 第一季度 11
c 第三季度 30
c 第二季度 0
c 第一季度 10
d 第三季度 0
d 第二季度 0
d 第一季度 55
我想请教一下各位怎样用update.....from 语句把同一种材料,它的第三季度价格为0,第二季度价格不为0的时候,把第二季度价格更新给第三季度价格?
例如:a的第三季度价格为0,第二季度价格为20,我想:第三季度价格=第二季度价格

解决方案 »

  1.   

    update a
    set a.价格 = (select 价格 from biao where a.材料名称 = 材料名称 and  季度= '第二季度')
    from biao a
    where a.季度 = '第二季度' and 价格 = 0
      

  2.   

    update a
    set a.价格 = (select 价格 from biao where a.材料名称 = 材料名称 and  季度= '第二季度')
    from biao a
    where a.季度 = '第三季度' and 价格 = 0
      

  3.   

    update biao set 价格=B.价格 from biao A,(select * from biao where 季度=‘第二季度’and 价格<>0)B where A.季度=‘第三季度’ and A.价格=0 and A.材料名称 = B.材料名称
      

  4.   

    update a
    set a.价格 = (select 价格 from biao where a.材料名称 = 材料名称 and  季度= '第二季度')
    from biao a
    where a.季度 = '第三季度' and 价格 = 0
      

  5.   

    UPDATE  TableName
    SET     价格=b.价格
    FROM    TableName a INNER JOIN 
               (
                SELECT 材料,价格
                FROM TableName
                WHERE 季度='第二季度' AND 价格<>0
               ) b
             ON a.材料=b.材料
    WHERE   a.季度='第三季度' AND a.价格=0
      

  6.   


    UPDATE  biao
    SET     价格=t1.价格
    FROM biao t2 inner join 
    (
    select 材料名称,价格
     from biao
     where 季度='第二季度' and 价格<>0
    )t1
    on t2.材料名称=t1.材料名称
    WHERE   t2.季度='第三季度' AND t2.价格=0