SELECT
Поле1,
Поле2
FROM
Таблица1
WHERE
(Поле1 = Фильтр1 and Фильтр1 is not null and Фильтр2 is null) or
(Поле2 = Фильтр2 and Фильтр1 is null and Фильтр2 is not null) or
(Поле1 = Фильтр1 and Поле2 = Фильтр2 and Фильтр1 is not null and Фильтр2 is not null)
Фильтр таблицы
Первое:
SELECT Поле1, Поле2 FROM Таблица1 WHERE Поле1 = Фильтр1 OR Поле2 = Фильтр2 - в данном случае при вводе значения в Фильтр 1 выводятся все строки с данным значением в Поле1; аналогично при вводе значения в Фильтр2; НО при вводе значений в оба поля ввода (Фильтр1, Фильтр2) выводятся ВСЕ строки, значения в которых встречаются в Поле1 и Поле2 независимо от того находятся они в одной строке или нет.
Делаю по другому:
SELECT Поле1, Поле2 FROM Таблица1 WHERE Поле1 = Фильтр1 AND Поле2 = Фильтр2 - в этом случае выводятся ТОЛЬКО строки в которых присутствуют оба значения, НО если один из полей ввода остается незаполненным,то не выводится ничего.
Вопрос: как сформулировать запрос так чтобы при заполнении одного из полей ввода выводились строки таблицы как в первом случае, но при заполнении обоих полей ввода фильтровались строки как во втором случае??
P.S. База данных - Access; пользуюсь Dreamweaver cs4 для создания сайта; динам. стран. - ASPJavaScript.
Код:
не помню как там сравниваются анси нуллы в акцессе так чо м.б. некоторые проверки на нот нулл можно убрать...
Код:
SELECT
Поле1,
Поле2
FROM
Таблица1
WHERE
(Фильтр1 is null or Фильтр1 = Поле1) and
(Фильтр2 is null or Фильтр2 = Поле2)
Поле1,
Поле2
FROM
Таблица1
WHERE
(Фильтр1 is null or Фильтр1 = Поле1) and
(Фильтр2 is null or Фильтр2 = Поле2)
Ghox, SomewherSomehow, большое спасибо за помощь. Теперь вс работает как надо.