Topic: Некорректный поиск
Добрый день.
Необходим поиск по всем полям таблицы - реализовал через SQL запрос. Все работает,если только для поиск используется поле Edit:
skan.prim LIKE '%{edSearch}%' OR
skan.klslovo LIKE '%{edSearch}%' or
Мне нужна еще фильтрация по дате и по комбобоксу. Добавляю строки:
(CASE WHEN {Combobox1}=-1 THEN 1=1 ELSE skan.id_aktive={Combobox1} END) OR
skan.prim LIKE '%{edSearch}%' OR
skan.klslovo LIKE '%{edSearch}%' or
skan.data >= {DateTimePicker1} or skan.data <= {DateTimePicker2}
Результат некорректный. Другими словами нужно иметь поиск по текстовым полям (будут искаться через поле EdSearch),по дате и по комбобоксу одновременно.
UPD: вроде как решилось, поправьте, если не так.
WHERE
(CASE WHEN '{edsearch}' <> '' THEN skan.prim LIKE '%{edsearch}%' ELSE 1=1 END) AND
(CASE WHEN '{edsearch}' <> '' THEN skan.klslovo LIKE '%{edsearch}%' ELSE 1=1 END) AND
(CASE WHEN {Combobox1} <> -1 THEN skan.id_aktive = {Combobox1} ELSE 1=1 END) AND
(CASE WHEN {DateTimePicker1} IS NOT NULL THEN date(skan.data) >= date({DateTimePicker1}) ELSE 1=1 END) AND
(CASE WHEN {DateTimePicker2} IS NOT NULL THEN date(skan.data) <= date({DateTimePicker2}) ELSE 1=1 END)