使用一张表作为另一张表计算的参考点

时间:2018-06-19 20:56:54

标签: oracle

我希望使用一张桌子作为另一张桌子的参考点。 Table1将设置所有参数,而table2包含我需要进行计算的值。我正在寻找一种基于日期引用table2的值并将table1的值乘以table2中的值的方法。希望这个例子对您有帮助

表1

1.1.0.M1

表2

 account1      datefrom1      dateto1     value1
    1234          01/01/18     12/31/18     5
    5678          01/01/17     12/31/17     6
    8912          01/03/17     12/31/18     7
    6543          02/01/18     12/31/18     8

在这种情况下,我希望1234返回5.1(5 * 1.02),因为它处于1/1/18-12/31/18范围内

我还希望5678返回6.3(6 * 1.05),因为它处于1/1/17-12/31/17范围内

相同的逻辑适用于8912和6543

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

更多评论为答案:如果您只需要关联dateFromdateTo完全匹配的记录,则只需要一个JOIN:

select t1.account1, t1.datefrom1, t1.dateto1, t1.value1 * t2.value2 as val
from table1 t1
    inner join table2 t2
        on(t1.datefrom1 = t2.datefrom2 and t1.dateto1 = t2.dateto2)

如果您的联系不是那么容易,例如关联日期重叠的记录,请添加更多详细信息和更多的示例数据。

此外,如果您的一个表中的记录在另一表中没有对应的记录怎么办?你想得到吗?如果可以,该如何计算值?