代码之家  ›  专栏  ›  技术社区  ›  Arvinth Kumar

如何根据日期从一个表插入新行?

  •  -1
  • Arvinth Kumar  · 技术社区  · 6 年前

    我有两张桌子(表1和表2)。我有专栏 Date, A, B, C 在表1和列中 Date, D, E 在表2中。我需要根据两个表中的日期将D列和E列从表2转移到表1。有人能帮忙吗

    在下面的代码中尝试,但无法绑定获取“多部分标识符”table1.Date。“错误

      INSERT INTO table1
    SELECT D,E FROM table2
    WHERE table2.Date = table1.Date
    
    
    Table1 :
    Date        A   B   C
    1945-01-01  1   2   3
    1945-02-01  1   2   4  
    1945-03-01  5   6   7 
    
    Table2 :
    Date        D   E   
    1945-02-01  8   2     
    1945-03-01  5   6   
    

    预期产量:

    Table1 :
    Date        A   B   C  D      E
    1945-01-01  1   2   3  Null   Null
    1945-02-01  1   2   4  8      2
    1945-03-01  5   6   7  5      6 
    
    2 回复  |  直到 6 年前
        1
  •  1
  •   Sean Lange    6 年前

    首先必须将这些列添加到表1中。然后需要更新现有行。像这样的事情应该行得通。

    alter table Table1
        add D int
    
    alter table Table1
        add E int
    
    GO
    
    update t
    set D = t2.D
        , E = t2.E
    from Table2 t2
    left join Table1 t on t.Date = t2.Date
    
        2
  •  0
  •   halfer    6 年前

    你在问怎么做 JOIN 桌子,因为你 无法使用insert语句添加列 .

    说了这些,你在寻找 LEFT JOIN (如果操作员左侧的桌子 Table1 ),请尝试:

    SELECT * FROM Table1 T1
    LEFT JOIN Table2 T2 ON T1.[Date] = T2.[Date]
    

    如果你想把它当作“桌子”而不用 加入 s、 那么我建议你熟悉以下的观点: CREATE VIEW (Transact-SQL)