2016-11-29 64 views
1

我目前有两个表,如下图所示。使用连接更新或插入SQL服务器从另一个表中插入到一个表中

第一表被称为bottle

enter image description here

第二表被称为cases

enter image description here

我试图插入到瓶表,其中CASE_ID = 0的在案例表中看到的值(即case_id = 100,100,103,103等)。它们是两个单独的表格,我试图在不创建NULL值的情况下加入它们。

请让我知道,如果我需要使用插入,加入或更新。我会手动做到这一点,但是这些数据点是通过PLC实时发布的,并且会有比以下所有更多的数据点。

+0

你可以发表你的表结构与出图像? – Buddi

+0

'我想加入他们......你想用什么逻辑来引入这些新值,因为没有明确的加入列? –

回答

0

没有明确的加入列可以执行您想要的UPDATE。但是我们可以通过使用某个顺序连接来自每个表的行号值来创建一个。在下面的查询中,我使用bottle_id订购了bottle表中的行号,使用case_id订购了cases表中的行号。

UPDATE t1 
SET t1.case_id = t2.case_id 
FROM 
(
    SELECT t.*, ROW_NUMBER() OVER (ORDER BY bottle_id) rowId 
    FROM bottle t 
) t1 
INNER JOIN 
(
    SELECT t.*, ROW_NUMBER() OVER (ORDER BY case_id) rowId 
    cases t 
) t2 
    ON t1.rowId = t2.rowId 

这应该给在bottle输出看起来像这样(省略了一些列):

bottle_id  case_id 
1    100 
2    100 
3    103 
4    103 
5    104 
6    104 
7    105 
8    105 
相关问题