0

好的,这应该很容易。

例如,我有一个表(表 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)

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

4

3 回答 3

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
于 2013-11-07T06:33:22.753 回答
1
insert into table1 
SELECT TOP 1 Account#,trxdate,description,amount FROM table2
ORDER BY trxdate DESC;
于 2013-11-07T06:37:58.097 回答
0

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

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

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

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

于 2013-11-07T06:55:37.573 回答