问题
表格1:
| KeyColumn | DataColumn1 | DataColumn2|
01 0.1 0.2
02 0.13 0.41
表2:
| anotherKey | DataColumn1 | DataColumn2|
A1 .15 1.2
A2 .25 23.1
表3:
|KeyColumn| anotherKey |
01 A1
02 A1
给定一个键(A1,或者A2)我需要更新表2在表1中相应的值的DataColumn1和DataColumn2列。
所以表1可以具有更新,如图上述数据行的x个。 如果我想更新A1,两者01和02行应更新
(因此在表1中的值将是datacolumn2 0.15 datacolumn1和1.2这两个键01和02)
我迄今为止尝试:
MERGE table1
USING (SELECT *
FROM table2
LEFT OUTER JOIN table3
on table2.anotherKey = table3.anotherKey
WHERE table2.anotherKey = 'A1') tmpTable
ON
table1.keyColumn = tmpTable.keyColumn
WHEN MATCHED THEN
UPDATE
SET table1.DataColumn1 = tmpTable.DataColumn1
,table1.DataColumn2 = tmpTable.DataColumn2;
问题:
- 这可以吗? 使用选择在using语句? 我在第1行得到一个语法错误
- 有没有更好的方法去吗? 我是不是使这个复杂得多,它必须是?
- 我究竟做错了什么?
和错误:
消息102,级别15,状态1,行1附近有语法错误 'A'。 消息102,级别15,状态1,行12附近有语法错误d'。