合并覆盖数据

时间:2017-08-10 11:31:25

标签: sql ms-access merge overwrite

我一直在互联网上试图找到解决方案,但对于我的生活,我无法理解它。

我在Excel中有3组数据,我们将它们称为(旧的,新的,其他的)它们都包含相同的列标题。该信息是用于显示过程的路由数据。例如。为了库存项目21632,我们执行以下操作:

<table class="tableizer-table">
<thead><tr class="tableizer-firstrow"><th>Part No.</th><th>Op. No.</th><th>Operation Name</th><th>Real Op Time Per Item</th><th>Resource Group</th><th>Setup Time</th></tr></thead><tbody>
 <tr><td>21632</td><td>10</td><td>Issue Mat'l</td><td>15</td><td>STORES</td><td>0</td></tr>
 <tr><td>21632</td><td>20</td><td>Rough out and part off</td><td>210</td><td>3/C4</td><td>90</td></tr>
 <tr><td>21632</td><td>30</td><td>Finish M/c</td><td>90</td><td>CNCLAT LC3</td><td>90</td></tr>
 <tr><td>21632</td><td>40</td><td>Inspect</td><td>5</td><td>INSPECT</td><td>0</td></tr>
 <tr><td>21632</td><td>45</td><td>NDE </td><td>40</td><td>NDE</td><td>0</td></tr>
 <tr><td>21632</td><td>50</td><td>MARK</td><td>10</td><td>MARK</td><td>5</td></tr>
 <tr><td>21632</td><td>70</td><td>Final inspection</td><td>7</td><td>INSPECT</td><td>0</td></tr>
</tbody></table>

3个电子表格各有约20k行,我想合并/覆盖它们New&gt;其他&gt; PSTK列按行排列(每个PSTK将多次出现)。

我已将所有数据导入到3个表中,以尝试在其上运行一些SQL。

我尝试在他们身上运行联盟: select * from Old union select * from New,但它只是合并所有内容,因为行中的数据可能不同。

试图简化我想要做的事情:

使用NEW表合并/覆盖OLD表。如果NEW表中的任何PSTK出现在OLD表中,我想覆盖NEW表中的整行。如果它没有出现我只想添加它。

我希望这样做。

表信息:OLD,NEW,OTHER 列标题:(ID),行,pstk,设置时间,欠幅,desc1,ml_type

1 个答案:

答案 0 :(得分:0)

您可以运行合并的追加/更新查询:

Update and Append Records with One Query

当新数据到达时,只需再次运行查询。