Anylogic查询如何在插值后从数据库表中选择值

时间:2016-07-25 07:32:52

标签: java sql interpolation querydsl anylogic

我在Anylogic中有一个包含2列的数据库表。我想知道查询dsl代码或sql代码,用于在我的输入与第1列的值进行比较之后以及在进行线性插值之后从column2中的表中选择值。 我在Anylogic中的代码提供了值x2 where (x1 < x2 < x3),而x2不在表中。我希望从表格中选择基于y2的值x2 where (y1 < y2 < y3),并且y2不在表格中。因此,我希望在查找表格后对软件进行插值并返回值y2,如下所示:

y2= [(x2-x1)*(y3-y1)/(x3-x1)]+y1

x1  |  y1

x3  |  y2

x4  |  y3

x5  |  y4

示例:如果我的代码返回x=0.15,我希望程序插值并从表中返回值y,其中:

y =[[0.15-0.1]*(0.0072-0.0127)/(0.2-0.1)]+0.0127= 0.00995

---x  |   y

0.1  | 0.0127

0.2  | 0.0072

0.3  | 0.0039

0.4  | 0.0020

0.5  | 0.0010

0.3  | 0

谢谢

1 个答案:

答案 0 :(得分:0)

您可以简单地创建一个表函数并将其配置为从数据库加载数据,而不是从内置数据库表中选择值并使用它们进行线性插值。

由于默认情况下选择线性插值作为函数插值类型,因此您只需调用tableFunction(0.15)即可获得y = 0.00995的{​​{1}}。