从记录不存在的另一个 table 插入到 table

Insert into table from another table where the records don't exist

我正在尝试弄清楚如何从临时 table (temp) 中插入现有 table (tbl01),其中现有 [=25] 中尚不存在记录=] (tbl01)。我希望这是有道理的。我基本上是在尝试使用自上次更新 table 以来发生的记录来更新 table。到目前为止,这是我的代码:

insert into tbl01
(sale_store, sale_dt, sale_register, sale_trans)
select distinct
sale_store, sale_dt, sale_register, sale_trans
from temp
where NOT EXISTS (select * from tbl01)

我遇到的问题是它运行了,但没有将任何新记录放入 table - 应该有很多新记录。我确定这是我所缺少的小而愚蠢的东西。我用这个 post 作为指导:How to avoid duplicates in INSERT INTO SELECT query in SQL Server?

提前致谢!

问题是您的内部查询不以任何方式依赖于临时 table。基本上,你写的是"insert into tbl01 if no records exists in tbl01"。要修复它,您需要在 exists:

内的查询中添加一个 where 子句
insert into tbl01
(sale_store, sale_dt, sale_register, sale_trans)
select distinct
sale_store, sale_dt, sale_register, sale_trans
from temp
where NOT EXISTS (
    select * 
    from tbl01
    where temp.sale_store = tbl01.sale_store 
    and temp.sale_dt = tbl01.sale_dt
    and temp.sale_register = tbl01.sale_register
    and temp.sale_trans = tbl01.sale_trans)