我有两个表(table1和table2)。我在表1中有Date, A, B, C
列,在表2中有Date, D, E
列。我需要基于两个表中的日期将D和E列从table2转移到table1。谁能帮忙
尝试以下代码,但获取“无法绑定多部分标识符” 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
答案 0 :(得分:1)
首先,您必须将这些列添加到Table1中。然后,您需要更新现有行。这样的事情应该起作用。
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
答案 1 :(得分:0)
您宁愿问如何JOIN
表,因为您不能使用插入语句添加列。
话虽如此,您正在寻找LEFT JOIN
(好吧,如果运算符左侧的表是Table1
),请尝试以下操作:
SELECT * FROM Table1 T1
LEFT JOIN Table2 T2 ON T1.[Date] = T2.[Date]
如果您希望将此表作为“表”并在不使用JOIN
的情况下使用,那么我建议您熟悉以下视图:CREATE VIEW (Transact-SQL)