[英]How can I insert rows in a new table from another table based on some condition in Sybase?
[英]How to in insert new rows from one table to another based on date?
我有两张桌子(table1 和 table2)。 我在 table1 中有Date, A, B, C
列Date, D, E
在 table2 中有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
首先,您必须将这些列添加到 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
您是在询问如何JOIN
表,因为您不能使用 insert 语句添加列。
话虽如此,您正在寻找LEFT JOIN
(好吧,如果运算符左侧的表是Table1
),请尝试以下操作:
SELECT * FROM Table1 T1
LEFT JOIN Table2 T2 ON T1.[Date] = T2.[Date]
如果您想将此作为“表”并在没有JOIN
的情况下使用它,那么我建议您熟悉视图: CREATE VIEW (Transact-SQL)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.