Реализовать логику IF

#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. 🙂