SQL-запрос. Работа с оператором IIF. В частности - СУБД Access.
В общем суть проблемы такова: есть таблица, в которой, например, указаны даты поступления товара, склад, количество.
Нужно соорудить такой запрос, который бы выводил информацию о поступлении товара за весь интервал времени (по всем датам, что были занесены в таблицу) , если ничего не вводилось (ну, типа, значение NULL), иначе же выводится информация за определенный интервал, который был задан двумя переменными в форме типа __/__/____.
Синтаксис в общем понятен, но, в частности, не ясно, как с помощью этого оператора выводить информацию именно из таблицы, а не какую-то заготовку. Заранее благодарен за толковые ответы.
Вот копипаста с Access
SELECT Справочник_изделий. Наименование_изделия, Учет. №_склада, Sum(Учет. Количество_изделий) AS Общее_количество_изделий
FROM Справочник_изделий INNER JOIN Учет ON Справочник_изделий. №_изделия = Учет. №_изделия
WHERE (((Справочник_изделий. №_изделия) =[Введите номер изделия] ) AND ([Учет]! [Количество_изделий] =IIf((Учет. Дата_поступления) Between [Начальная дата] =Null And [Конечная дата] =Null,[Учет]! [Дата_поступления], [Учет]! [Дата_поступления] =((Учет. Дата_поступления) Between [Начальная дата] And [Конечная дата]))) )
GROUP BY Справочник_изделий. Наименование_изделия, Учет. №_склада;
Предлагаю изменить подход к решению. По нажатию кнопки в форме присваивать переменной значение из инпутбокса а после этого на основании значения из инпутбокса заменять в сохраненном запросе полностью текст SQL команды на один из двух вариантов. Конечно можно и городить нечитаемый iif но это имеет смысл только в том случае когда запрос не ссылается на формы. Если формы есть всё логичнее делать через пару строк на vba
заглядываем сюда если ответ пригодился
[ссылка заблокирована по решению администрации проекта]
целый урок по функции IIF в access на youtube: https://youtu.be/9eCw4F2Wusc