-1

我正在使用 SQL通过我Inputted ValueVALGUI 软件Siemens' WinCC(我已经完成了用户键入24.5和我的脚本显示与输入对应的值 30 的任务。我有一种情况,用户键入一个不在表中的值。与用户键一样,26.5它应该输出 和 之间30的插值35。有什么建议么?

Inputted Value
24.5
28
25

VAL
30
35
44
4

1 回答 1

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' 是用户键入值的参数。

于 2013-04-14T13:35:59.303 回答