#sql #ms-access-2010
#sql #ms-access-2010
Вопрос:
У меня есть таблица в ACCESS. Мне нужно реализовать SQL-запрос / макрос, чтобы добавить к нему другое поле.
ID F1 F2 F3
1 1 2 3
2 5 6 9
3 4 2 3
Мне нужно добавить поле F4, которое имеет следующую формулу :-
F4 = IF(MIN(F1,F2-F3)>0,MIN(F1,F2-F3),0)
Спасибо.
Комментарии:
1. Вы пробовали искать в Google «ms access sql min» и «ms access sql if»? Если да, то что вы пробовали тогда и в чем была проблема?
2. Ну, я довольно новичок в SQL. Но из того, что я погуглил и прочитал, MIN может быть реализован для всего столбца за один раз.
3. Можете ли вы реализовать,
MIN
используяIF
? Можете ли вы использовать наблюдение, котороеMIN(F1,F2-F3)>0
совпадает с(F1 > 0) And (F2-F3 > 0)
?4. Да, я получил часть if-condition, но если это true, мне нужна часть MIN (F1, F2-F3). И это выдает ошибку неправильного количества аргументов; что и должно быть, поскольку MIN должен занимать только один столбец.
Ответ №1:
Чтобы реализовать минимальную функцию, вы можете следовать этой базовой статье Knowlegde: ACC2000: Как найти минимальное или максимальное значение по полям записи.
Тогда ваш запрос в Access должен быть чем-то вроде:
SELECT f1, f2, f3, IIF(Minimum(f1, f2-f3)>0,Minimum(f1, f2-f3),0) AS f4
FROM tempDb
Комментарии:
1. Min(F1,F2-F3) выдает ошибку неправильного количества аргументов.
2. @ArkaSarkar Не меняйте название, предложенное в статье Knowledge для функции, особенно если вы новичок.
3. Функция Minimum () выдает мне неопределенную функцию в ошибке выражения.
4. @ArkaSarkar Следовали ли вы инструкциям из статьи базы знаний на support.microsoft.com/kb/209857/en-us ? Вы создали новый модуль с минимальной функцией?
5. Сделано и свершилось! Огромное спасибо! Ранее не компилировался. Огромное спасибо GmG. 🙂