2013-02-15 38 views
-1

我。减去有两个表触发从不同的表

Table Number1    Table: Number2 



Position1     Position2 
    2       2 
    3       3 
    4       1 

表3号数字1的结果 - NUMBER2按行。
我如何才能使触发器做到这一点?
我一直在寻找,但它只是说我不能做那样的事情。请给我一些解决方案。

+3

为什么地球上有这些不同的表格? – 2013-02-15 02:56:17

+0

表格有** no **固有顺序。对于“按行”的任何事情来说,我们需要一个列来确定顺序。 – 2013-02-15 07:27:53

+0

@Damien_The_Unbeliever,我已经改变它 – user2063311 2013-02-15 07:44:53

回答

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 

这种尝试分配顺序号,顺序,以每个表中的行。但是,这不是保证。它可能适用于小桌子。当你只有一个线程正在处理时它可能会工作。但是没有保证。

+0

我怎么可以使用它作为触发器? – user2063311 2013-02-15 03:05:33

+1

我不会建议,除非你有一个指定顺序的列。 – 2013-02-15 03:14:45

+0

我只是混淆了如何使用触发器来减去两个不同表中的值。 – user2063311 2013-02-15 04:59:27