坚持使用SQL Update语句,可能是内部加入(不确定)?

时间:2016-07-13 15:43:13

标签: sql ms-access join inner-join

我有一个MS Access表,在名为Code的表中有3列名为[Money Amt]LineActual Debt的列。

enter image description here

我正在尝试编写一个SQL语句来帮助我自动执行此过程。我希望语句在其代码列中查找具有相同值的行。然后查看[Money Amt]并找到具有相反值的对(在这种情况下,该对将是200-200)。当它找到具有相同Code值且反向[Money Amt]的行对时,它将使用Line填充999列值。

在这种情况下,第二行和第四行将被选为对,并且得到的行值为999

我知道这可能需要INNER JOIN。除此之外,我还没有走得太远,因为是新手,我不知道如何构建INNER JOIN

UPDATE [Actual Debt] SET Line = 999; 

2 个答案:

答案 0 :(得分:1)

我不确定MS Access语法,但这是一般的想法。

update t1
set line = 999
from [actual debt] t1 join [actual debt] t2 on t1.code = t2.code
and t1.[money amt] = t2.[money amt] * -1

答案 1 :(得分:1)

你正在走上正轨。这是一种方式:

update [Actual Debt]
    set line = 999
    where exists (select 1
                  from [Actual Debt] as ad2
                  where ad2.code = [Actual Debt].code and
                        ad2.[Money Amt] = - [Actual Debt].[Money Amt]
                 );