本人现有2张表sheet1 sheet2,2张表内容如下sheet1 id     cs      ps     sheet2  id     cs      ps     
                                                 1701  103.2   9.4            1701   409     7.4
                                                 2046  246.67  8              2046   96.4    8.9
                                                 3952  365     76.3           3952   245.6   5
要实现将sheet1里面的cs列和ps列的内容改为2表相应列内容之和,2表可以通过id关联,这个语句应该怎么写,请各位前辈指教,之前试过update命令但都是在同一张表内,不通表之间就实现不了了!
                                                                                                                                                   

解决方案 »

  1.   

    SELECT ISNULL(A.ID,B.ID),A.cs+B.CS,A.PS+B.PS FROM sheet1 A FULL JOIN sheet2 B
    ON A.ID=B.ID 
      

  2.   

    update sheet1 set cs=cs+b.cs,ps=ps+b.ps from sheet1 a join sheet2 b on a.id=b.id
      

  3.   

    UPDATE sheet1  SET  cs=T2.CS ,ps =T2.PS FROM sheet1 T1 JOIN sheet2 T2 ON T1.id=T2.ID
      

  4.   

    update a set a.cs=a.cs+b.cs,a.ps=a.ps+b.ps from sheet1 a ,sheet2 b where a.id=b.id
      

  5.   

    UPDATE sheet1  SET  cs=CS+T2.CS ,ps =PS+T2.PS FROM sheet1 T1 JOIN sheet2 T2 ON T1.id=T2.ID
    还得求和呀,题目都看错了!!
      

  6.   

    update sheet1
    set cs=sheet1.cs+t.cs
    ,ps=sheet1.ps+t.ps
    from sheet2 t
    where sheet1.id=t.id
      

  7.   

    谢谢各位,但是我得到的结果怎么是sheet1 id    cs               ps    
                                       1701  103.2   409      9.4   7.4                 
                                       2046  246.67  96.4     8     8.9 
                                       3952  365     245.6    76.3  5
    是不是还和数据类型有关系吗我的cs和ps的数据类型是char
      

  8.   

    UPDATE sheet1  SET  cs=T2.CS ,ps =PS+' '+T2.PS FROM sheet1 T1 JOIN sheet2 T2 ON T1.id=T2.ID第一个好像没加,第二个加的话,CHAR 可以加列长度会影响的!!!
      

  9.   

    这样的话,是不是应该将char类型改为float或者是其他类型
      

  10.   

    --測試數據
    declare @sheet1 table
    (
    id int
    ,cs char(7)
    ,ps char(7)
    );
    declare @sheet2 table
    (
    id int
    ,cs char(7)
    ,ps char(7)
    );
    insert into @sheet1
    values(1701,103.2,9.4)
    ,(2046,246.67,8)
    ,(3952,365,76.3);
    insert into @sheet2
    values(1701,409,7.4)
    ,(2046,96.4,8.9)
    ,(3952,245.65,76.3);
    --更新
    update @sheet1
    set cs=cast(cast(t1.cs as decimal(5,2))+cast(t2.cs as decimal(5,2)) as CHAR(7))
    ,ps=cast(cast(t1.ps as decimal(5,2))+cast(t2.ps as decimal(5,2)) as CHAR(7))
    from @sheet1 t1
     join @sheet2 t2 on t1.id=t2.id 
      

  11.   


    update sheet1 set cs=cast((cast(a.cs as float)+cast(b.cs as float)) as char),ps=cast((cast(a.ps as float)+cast(b.ps as float)) as char) from sheet1 a join sheet2 b on a.id=b.idselect * from sheet1
    --------------------
    id cs                ps
    1701 512.2                16.8                
    2046 343.07               16.9                
    3952 310.6                11.3