如何从另一个表中缺少的一个表中添加记录:MS Access

时间:2013-11-07 06:11:46

标签: sql ms-access join

好的,这应该很容易。

举个例子, 我有一个表(表1)填充了以下记录:

Account#  TrxDate  Description  Amount
123456    20130719  trx-1       500.00
123456    20130819  trx-2       500.00

我有第二个表(表2)填充了以下记录:

Account#  TrxDate  Description  Amount
123456    20130719  trx-A       500.00
123456    20130819  trx-B       500.00
123456    20130919  trx-C       500.00

我想将表2中的最后一条记录添加到表1中。

我以为我可以使用WHERE NOT EXISTS来做到这一点,但这并没有完成任务。

以下是我尝试的不起作用的示例:

INSERT INTO Table1 (Account#, TrxDate, Description, Amount)
SELECT Account#, TrxDate, Description, Amount
FROM Table2
WHERE NOT EXISTS
(SELECT * FROM Table1 WHERE Table1.Account# = Table2.Account# AND Table1.TrxDate = Table2.TrxDate AND Table1.Amount = Table2.Amount)

有什么建议吗?提前谢谢!

3 个答案:

答案 0 :(得分:1)

试试这个

insert into Table_1
select Table_2.* from Table_1 
right outer join Table_2 on Table_1.Account#=Table_2.Account# and Table_1.TrxDate=Table_2.TrxDate and Table_1.Amount=Table_2.Amount
where Table_1.Account# is null

答案 1 :(得分:1)

insert into table1 
SELECT TOP 1 Account#,trxdate,description,amount FROM table2
ORDER BY trxdate DESC;

答案 2 :(得分:0)

感谢您的回复!我对这个不好......我怀疑这可能是一个问题,但我不确定。

Table1上的TrxDate字段是DATE / TIME,Table2上的TrxDate是NUMERIC(LONG INT)。我正在使用一个函数将DATE / TIME值转换为WHERE NOT EXISTS的子查询部分中的Numeric。

显然这不起作用。我将这两个值都转换为NUMERIC并运行了我最初尝试的完全相同的查询并且它有效。呼!

再次感谢您的回复......如果我在这个问题上遇到更多问题,我肯定会尝试一下。