触发从不同的表中减去

时间:2013-02-15 02:53:08

标签: sql sql-server sql-server-2005 triggers

我有两张桌子

Table Number1              Table:  Number2 



Position1                    Position2
   2                           2
   3                           3
   4                           1

表编号3 将是 Number1 - Number2 按行的结果。
我怎么能做到这一点呢?我一直在寻找,但它只是说我不能做那样的事情。请给我一些解决方案。

1 个答案:

答案 0 :(得分:1)

你不能这样做,因为你不能轻易找到“最后”一行。您需要ID或创建日期或版本。

接近您想要的SQL查询:

select n1.number - n2.number
from (select n1.*, row_number() over (order by (select null)) as seqnum
      from number1 n1 
     ) n1 join
     (select n2.*, row_number() over (order by (select null)) as seqnum
      from number2 n2
     ) n2
     on n1.number = n2.number

这会尝试按顺序为每个表中的行分配一个序号。但是,这并不保证。它可能适用于小型表。当你只有一个线程进行处理时,它可能会工作。但是没有保证。