我希望使用一张桌子作为另一张桌子的参考点。 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
感谢您的帮助
答案 0 :(得分:0)
更多评论为答案:如果您只需要关联dateFrom
和dateTo
完全匹配的记录,则只需要一个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)
如果您的联系不是那么容易,例如关联日期重叠的记录,请添加更多详细信息和更多的示例数据。
此外,如果您的一个表中的记录在另一表中没有对应的记录怎么办?你想得到吗?如果可以,该如何计算值?