Topic: Как сделать фильтр по нескольким комбобоксам?
Есть три таблицы: Товар, Бренд, Товарная группа.
Для каждого товара пользователь может указать его Бренд и Группу (однако, это не обязательно).
Список товара вывожу на форму в TableGrid запросом.
Однако, надо дополнить форму фильтром, чтобы ограничить выводимый список товаров.
Для этого создал Поле ввода наименования товара и два выпадающих списка Бренд и Группа.
Создал запрос (он указан ниже для удобства чтения) и прицепил его к кнопке 'SQL запрос'
Однако, такой запрос возвращает список товаров, только если у них указан и Бренд и Группа.
Если же Бренд или Группу (или - и то и другое) пользователь не указал, то запрос возвращает пусто.
Просьба подсказать как исправить запрос в секции WHERE, чтобы пустые комбобоксы Бренда и Товара не ограничивали вывод всего списка товаров.
Т.е. комбобоксы должны участвовать в запросе, только если они имеют значение >0.
(Или это надо организовать не запросом, а скриптом? То как ? Может быть скриптом менять на лету текст запроса у кнопки SQLЗапрос? )
SELECT DISTINCT
"Tbl_Goods"."id" as "ID товара",
"Tbl_Goods"."Vendor_Code" as "Артикул",
"Tbl_Goods"."Goods_Name" as "Товар",
"Tbl_Brands"."Vendor_Name" as "Бренд",
"Tbl_Goods"."Current_Rozn_Price_ye" as "Цена у.е.",
"Tbl_Currencies"."Currency_Name" as "Валюта",
"Tbl_Goods"."Current_Rozn_Price_Currency_Rate" as "Курс",
"Tbl_Goods"."Current_Rozn_Price_Rub" as "Цена руб.",
"Tbl_Goods".id,
"Tbl_Goods"."id_Tbl_Currencies" as "Tbl_Goods.id_Tbl_Currencies",
"Tbl_Goods"."id_Tbl_Brands" as "Tbl_Goods.id_Tbl_Brands"
FROM "Tbl_Goods"
LEFT OUTER JOIN "Tbl_Currencies" ON "Tbl_Goods"."id_Tbl_Currencies"="Tbl_Currencies".id
LEFT OUTER JOIN "Tbl_Brands" ON "Tbl_Goods"."id_Tbl_Brands"="Tbl_Brands".id
WHERE ("Tbl_Goods"."Goods_Name" LIKE '%{Edit_Search_Value}%')
AND ( "Tbl_Goods"."id_Tbl_Brands" = '{ComboBox_Seacrh_Product_Brand}')
AND ( "Tbl_Goods"."id_Tbl_Goods_Group" = '{ComboBox_Search_Product_Group}')
ORDER BY "Tbl_Goods"."Vendor_Code" ASC