我有一个关于在非常特殊的情况下使用递归 SQL 的问题,我将在下面描述。
我有一个带有(ID, value)架构的表 A 和这些示例行:
(1,1000) (2,800) (3,300) (4,600)
我有一个带有(ID, value)架构的表 B 和这些示例行:
(1,600) (2,300) (3,400) (4,600) (5,600) (6,400)
目的是我必须从 A 中选择最大 ID,从 B 中选择最大 ID,然后从 A 中的值中减去 B 中的值,并为像这样的任何操作生成一行。
最终结果应该是一个模式(ID-A、ID-B、减法值),生成的行将是这些:
(1,1,600) 在 A.ID=1 中保持 400,在 B.ID=1 中保持 0 (1,2,300) 在 A.ID=1 中保持 100,在 B.ID=2 中保持 0 (1,3,100) 在 A.ID=1 中保持 0,在 B.ID=3 中保持 300 (2,3,300) 在 A.ID=2 中保持 500,在 B.ID=3 中保持 0 (2,4,500) 在 A.ID=2 中保持 0,在 B.ID=4 中保持 100 (3,4,100) 在 A.ID=3 中保持 200,在 B.ID=4 中保持 0 (3,5,200) 在 A.ID=3 中保持 0,在 B.ID=5 中保持 400 (4,5,400) 在 A.ID=4 中保持 200,在 B.ID=5 中保持 0 (4,6,200) 在 A.ID=4 中保持 0,在 B.ID=6 中保持 200
此时其中一张表中的行已完成,我需要停下来!
我不知道这是否可以使用递归 SQL,当然我认为我必须合并表 A 和 B 以生成一个固定表,我可以在该表上进行计算并生成我上面解释的内容,但我不知道如何管理我事先不知道的其余部分,例如时间 t 的值取决于 t-1 发生的情况)。
您有什么建议,一些链接可以帮助我了解是否可以使用递归 SQL 来管理它?
非常感谢您提前。