我有两个数据表,每个表中都有cj和dw两列,其中表一中的cj和dw都有对应的数据;表二中只有部分cj的数据,dw为空。我想对比两张表后,如果表2中的cj列中有数据在表一的cj列中有,则自动将表一中的cj下某数据对应的dw项数据复制到表2中的cj列的对应dw项下,请问这句SQL语句怎么写?
求求各位大大了,小弟才接触,不太懂,自己写的始终实现不了。小弟现在没分,有时间了一定补上

解决方案 »

  1.   

    cj dw
    45678 0.5
    1234 1
    qaz123 1.5
    waz147 2
    qsd3 0.5
    上面的是表1中的数据cj dw
    45678
    1234
    qaz123
    waz147
    qsd3
    qaz12
    4567
    qaz123
    123
    147
    1234
    wza147
    qsd3 0.5
    上面是表2中的。要求就是表2和表1对比下,如果表2中cj列有数据在表1中的cj列能找到完全一样的数据,就把表2中的dw列对应位置插上表1中dw列的数据
      

  2.   

    cj          dw 
    45678       0.5 
    1234        1 
    qaz123      1.5 
    waz147      2 
    qsd3        0.5 
    上面的是表1中的数据 cj          dw 
    45678 
    1234 
    qaz123 
    waz147 
    qsd3 
    qaz12 
    4567 
    qaz123 
    123 
    147 
    1234 
    wza147 
    qsd3       0.5 
    上面是表2中的。要求就是表2和表1对比下,如果表2中cj列有数据在表1中的cj列能找到完全一样的数据,就把表2中的dw列对应位置插上表1中dw列的数据
      

  3.   

    UPDATE T2 SET DW=T1.DW FROM TABLE1 T1 ,TABLE2 T2 WHERE T1.CJ=T2.CJ
      

  4.   

    update 表2 set 
      dw=表1.dw
    from 表2,表1
    where 表2.cj=表1.cj
      

  5.   


    update 表2 set dw=a.dw
    from 表1 as a join 表2 as b on a.cj=b.cj
      

  6.   

    UPDATE [Table1] SET dw=[Table2].dw FROM [Table2] WHERE [Table1].cj=[Table2].cj
      

  7.   

    update table2.dw=table1.dw from table1, table2 where tabl1.cj = table2.cj;尽做尝试!呵呵
      

  8.   


    update 表2 set 
      dw=表1.dw
    from 表2,表1
    where 表2.cj=表1.cj
      

  9.   

    IF OBJECT_ID('TABLE1')IS NOT NULL DROP TABLE TABLE1
    GO
    CREATE TABLE TABLE1(cj VARCHAR(10),    dw  FLOAT)
    INSERT TABLE1 SELECT '45678'      ,0.5 
    INSERT TABLE1 SELECT '1234'        ,1 
    INSERT TABLE1 SELECT 'qaz123'    ,  1.5 
    INSERT TABLE1 SELECT 'waz147'  ,    2 
    INSERT TABLE1 SELECT 'qsd3'      ,  0.5 
    IF OBJECT_ID('TABLE2')IS NOT NULL DROP TABLE TABLE2
    GO
    CREATE TABLE TABLE2 (cj  VARCHAR(10),         dw  FLOAT)
    INSERT TABLE2 SELECT '45678' ,NULL
    INSERT TABLE2 SELECT '1234' ,NULL
    INSERT TABLE2 SELECT 'qaz123' ,NULL
    INSERT TABLE2 SELECT 'waz147' ,NULL
    INSERT TABLE2 SELECT 'qsd3' ,NULL
    INSERT TABLE2 SELECT 'qaz12' ,NULL
    INSERT TABLE2 SELECT '4567' ,NULL
    INSERT TABLE2 SELECT 'qaz123' ,NULL
    INSERT TABLE2 SELECT '123' ,NULL
    INSERT TABLE2 SELECT '147' ,NULL
    INSERT TABLE2 SELECT '1234' ,NULL
    INSERT TABLE2 SELECT 'wza147' ,NULL
    INSERT TABLE2 SELECT 'qsd3' ,  0.5 
    UPDATE T2 SET DW=T1.DW FROM TABLE1 T1 ,TABLE2 T2 WHERE T1.CJ=T2.CJ
    SELECT * FROM TABLE2
    /*cj         dw                                                    
    ---------- ----------------------------------------------------- 
    45678      0.5
    1234       1.0
    qaz123     1.5
    waz147     2.0
    qsd3       0.5
    qaz12      NULL
    4567       NULL
    qaz123     1.5
    123        NULL
    147        NULL
    1234       1.0
    wza147     NULL
    qsd3       0.5(影響 13 個資料列)*/
      

  10.   


    create table ta
    (
    cj nvarchar(50),
    dw decimal(10,2)
    )create table tb
    (
    cj nvarchar(50),
    dw decimal(10,2)
    )insert into ta
    select '45678',      0.5  union all
    select '1234',        1  union all
    select 'qaz123',      1.5  union all
    select 'waz147',      2  union all
    select 'qsd3',        0.5 insert into tb
    select '45678' ,null  union all
    select '1234' ,null  union all
    select 'qaz123' ,null  union all
    select 'waz147' ,null  union all
    select 'qsd3',null  union all
    select 'qaz12' ,null  union all
    select '4567' ,null  union all
    select 'qaz123' ,null  union all
    select '123' ,null  union all
    select '147' ,null  union all
    select '1234' ,null  union all
    select 'wza147' ,null  union all
    select 'qsd3',      0.5 
    update b
    set b.dw = a.dw
    from tb b
    left join ta a on a.cj = b.cj
    where b.dw is null
     
    select * from tbdrop table ta
    drop table tb
    结果:
    45678 0.50
    1234 1.00
    qaz123 1.50
    waz147 2.00
    qsd3 0.50
    qaz12 NULL
    4567 NULL
    qaz123 1.50
    123 NULL
    147 NULL
    1234 1.00
    wza147 NULL
    qsd3 0.50