Модераторы: Akina
  

Поиск:

Закрытая темаСоздание новой темы Создание опроса
> Запрос по нескольким критериям, Не понимаю, что не так и как надо 
:(
    Опции темы
Гость_Антон
  Дата 26.11.2005, 19:23 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Здравствуйте!
У меня такая проблемка:
Требуется построить такой запрос,
чтобы, грубо говоря, выбирались те
строки из таблицы, определенные поля
которых равны определенным полям из
другой таблицы ("XX"), но только если
соответствующее поле из таблицы "XX"
не равно нуля, т. к. равенство нулю означает,
что данный критерий отбора не используется.

Например:
Таблица ХХ (размер 4x2):
ktyp kstor ksech kgr
0 1 2 3
Значит нам нужны те строки из другой таблицы,
где ktyp=любой, а kstor,ksech,kgr равны соответствующим
полям из таблицы.

Я пишу так:

SELECT Датчики.nom_d, Датчики.kod_t, Датчики.kod_c, Датчики.kod_s, Датчики.kod_gr, Датчики.kod_sh, Датчики.ar, Показания.znach, Показания.mes, Показания.god
FROM XX, Датчики INNER JOIN Показания ON Датчики.nom_d=Показания.nom_d
WHERE
(((Датчики.kod_t)=XX.ktyp) And ((XX.ktyp)<>0))
And
(((Датчики.kod_c)=XX.kstor) And ((XX.kstor)<>0))
And
(((Датчики.kod_s)=XX.ksech) And ((XX.ksech)<>0))
And
(((Датчики.kod_gr)=XX.kgr) And ((XX.kgr)<>0));

Получается хрень... Все работает совсем тупо...
Подскажите как же надо?
  Вверх
Akina
Дата 27.11.2005, 19:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Код

SELECT Датчики.nom_d, Датчики.kod_t, Датчики.kod_c, 
   Датчики.kod_s, Датчики.kod_gr, Датчики.kod_sh, 
   Датчики.ar, Показания.znach, Показания.mes, 
   Показания.god
FROM XX, Датчики INNER JOIN Показания ON Датчики.nom_d=Показания.nom_d
WHERE
(
((Датчики.kod_t = XX.ktyp) Or (XX.ktyp = 0))
And
((Датчики.kod_c = XX.kstor) Or (XX.kstor = 0))
And
((Датчики.kod_s = XX.ksech) Or (XX.ksech = 0))
And
((Датчики.kod_gr = XX.kgr) Or (XX.kgr = 0))
);

Однако ищи способ уйти от декартова произведения...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
  
Закрытая темаСоздание новой темы Создание опроса
Правила форума "MS Access"
Akina
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] и [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS Access | Следующая тема »


 




[ Время генерации скрипта: 0.0404 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.