Topic: SQL-запрос с фильтрацией данных

Добрый день!
На форме лежат компоненты:
table grid = tgList
edit box = edName
checkbox = chbActive (True - только активные, False - все)
combobox (multiselect) = cbType
button = btnProductList (SQL-запрос)
Таблицу заполняю по клику на btnProductList. При этом учитываются данные checkbox'a, combobox'a и editbox'a.
"Прикрутить" checkbox я еще смогла:

SELECT Product.id, Product.prodActive, Type.typeName, Product.prodBarcode, Product.prodName
FROM Product
LEFT OUTER JOIN Type ON Product.id_Type = Type.id
WHERE (CASE WHEN {chbActive} = 1 THEN Product.prodActive = 1 ELSE (SELECT Product.prodActive FROM Product) END)

Когда начала добавлять editbox, начались проблемы в виде разных ошибок. Не знаю, как это правильно сделать. Пробовала делать так (как пример одного из неработающих вариантов):

WHERE (CASE WHEN {chbActive} = 1 THEN Product.prodActive = 1 ELSE (SELECT Product.prodActive FROM Product) END) AND
      (CASE WHEN {edName} LIKE "" THEN (SELECT Product.prodName FROM Product) ELSE Product.prodName LIKE "%{edName}%" END)

А как ко всему этому добавить еще и combobox (multiselect) вообще не представляю.
Помогите, пожалуйста!
Спасибо!

Re: SQL-запрос с фильтрацией данных

Для EditBox

CASE WHEN '{Edit1}'='' then 1=1 else NameDolghnostOP LIKE '%{Edit1}%' END

Для CombiBox

CASE WHEN {ComboBox1}=-1 THEN 1=1 ELSE rent.id_car={ComboBox1} END

кнопка "SQL запрос" не поддерживает combobox (multiselect)
данную поддержку можно сделать только с помощью скрипта.


Почему вам неподходит кнопка с дейстием "Поиск" ?

Dmitry.

Re: SQL-запрос с фильтрацией данных

Добрый день!
У меня в БД есть таблицы: товары, их типы, накладные
А на главной форме "лежит" один TableGrid. Заполняю его SQL-запросами в зависимости от того, что необходимо вывести (данные по товарам, накладным, ценам или типы товаров).
Пробовала использовать кнопку поиск ("на скорую руку"). Выдает ошибку, что нет такой колонки ".id". Где-то я запуталась сильно smile
Сейчас, думаю, может проще сделать несколько TableGrid и скрывать/показывать по мере необходимости.
Пойду разбираться и пробовать.
Спасибо за помощь!