Вернуть значение из диапазона в MS Access - PullRequest
1 голос
/ 25 сентября 2019

Я пытаюсь сделать очень простой поиск диапазона в MS Access.

У меня есть две таблицы:

Employees

TaxRates

Яищем запрос, который сможет пойти, найти подходящий диапазон зарплаты и вернуть правильную ставку налога.

Я начал с этой базы:

SELECT IIf(Salary Between 1000 And 2000,10,20)
FROM Employees;

Но я не делаю никакого прогресса.

Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

1 голос
/ 25 сентября 2019

Вот альтернативное решение:

SELECT Salary.*, TaxRate.TaxRate
FROM Salary, TaxRate
WHERE Salary BETWEEN From and TO;
1 голос
/ 25 сентября 2019

Одним из возможных способов является использование коррелированного подзапроса, например:

select e.*, (select top 1 t.taxrate from taxrates t where t.to > e.salary order by t.to)
from employees e

Или использование between:

select e.*, (select top 1 t.taxrate from taxrates t where e.salary between t.to and t.from)
from employees e

В качестве альтернативы вы можете использоватьleft join следующим образом:

select e.*, t.taxrate
from employees e left join taxrates t on (e.salary between t.to and t.from)

Обратите внимание, что MS Access не может представлять этот тип объединения в представлении конструктора запросов (т. е. объединение с «вычисленными» критериями объединения, в отличие отк объединению с равными значениями полей), но это все еще допустимый SQL, который может быть успешно оценен ядром базы данных JET.


Во всем вышесказанном я предположил, что ваши таблицы называются Employees & TaxRates, замените их на соответствующие.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...