Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Фильтр таблицы

54K
06 апреля 2010 года
mik_on
6 / / 06.04.2010
Есть некая Таблица1 с столбцами Поле1 и Поле2. Есть форма, в которой находятся два поля ввода искомых данных : Фильтр1 и Фильтр2. Пытаюсь создать запрос для фильтра строк в таблице.
Первое:
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.
385
06 апреля 2010 года
SomewherSomehow
477 / / 25.07.2004
Как насчет синтаксиса не знаю, но логика такая (если конечно при условии "ничего не введено" фильтр принимает значение нулл).
 
Код:
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)

не помню как там сравниваются анси нуллы в акцессе так чо м.б. некоторые проверки на нот нулл можно убрать...
12K
07 апреля 2010 года
Ghox
297 / / 26.07.2009
Думаю, что запрос в посте участника SomewherSomehow можно немного упростить:
 
Код:
SELECT
    Поле1,
    Поле2
FROM
    Таблица1
WHERE
    (Фильтр1 is null or Фильтр1 = Поле1) and
    (Фильтр2 is null or Фильтр2 = Поле2)
54K
09 апреля 2010 года
mik_on
6 / / 06.04.2010
Ghox, SomewherSomehow, большое спасибо за помощь. Теперь вс работает как надо.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог