我正在使用SQL通过我的GUI软件(Inputted Value
)访问数据库(下面的表格显示了两列VAL
和Siemens' WinCC
)。我已经完成了24.5
中的用户键和我的脚本显示对应于输入的值30的任务。我有一个用户键在一个值不在表中的情况。与26.5
中的用户密钥一样,因此它应在30
和35
之间输出内插值。有什么建议吗?
Inputted Value
24.5
28
25
VAL
30
35
44
答案 0 :(得分:1)
这应该做(测试)(针对MS Access进行修订):
1)创建一个名为interpolation_left的第一个查询:
SELECT TOP 1 1 AS id, [val] AS val_left
FROM TABS
WHERE [Inputted Value] < 'key'
ORDER BY [Inputted value] DESC;
2)创建第二个名为interpolation_right的查询:
SELECT TOP 1 1 AS id, [val] AS val_right
FROM TABS
WHERE 'key' < [Inputted Value]
ORDER BY [Inputted value];
3)通过将前两个查询放在一起来创建最终查询
SELECT (val_left + val_right) / 2 as result
FROM interpolation_left
INNER JOIN interpolation_right
ON interpolation_left.id = interpolation_right.id
'key'是具有用户键入值的参数。