Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 29.05.2023, 21:30
Ru_Di Ru_Di вне форума
Прохожий
 
Регистрация: 13.05.2023
Сообщения: 6
Версия Delphi: Delphi 11
Репутация: 10
По умолчанию SQL access

Добрый день.
Не могу разобраться почему не корректно работает запрос.
Для запроса использую ADO, СУБД Aceess

Код:
WHERE (((tab_predmet_zakupki.srok_strahovaniya)<Now()+30) AND ((tab_predmet_zakupki.polis) Is Null)) OR (((tab_predmet_zakupki.polis)=""));

Условия SELECT игнорит <Now()+30 и отбирает только Is Null или ""

Что в WHERE я указал не корректно, почему OR не работает?

С 2-я условиями работает корректно.
Код:
WHERE (((tab_predmet_zakupki.srok_strahovaniya)<Now()+30) AND ((tab_predmet_zakupki.polis) Is Null));
Ответить с цитированием
  #2  
Старый 30.05.2023, 06:38
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,053
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Что-то ты со скобками перемудрил.
Я правильно понимаю, что ты хотел сказать:
Цитата:
Срок страхования заканчивается меньше, чем через месяц или полис не указан (null или пустая строка)

Тогда должно быть что-то такое:
Код:
WHERE
  tab_predmet_zakupki.srok_strahovaniya)<Now()+30
OR 
(
  tab_predmet_zakupki.polis) Is Null
  OR
  tab_predmet_zakupki.polis)=""
)
Ответить с цитированием
  #3  
Старый 30.05.2023, 08:45
Ru_Di Ru_Di вне форума
Прохожий
 
Регистрация: 13.05.2023
Сообщения: 6
Версия Delphi: Delphi 11
Репутация: 10
По умолчанию

Составлял через встроенный редактор в Access, он там сам скобки расставляет.

А нужно:
отобрать те записи где (srok_strahovaniya < чем текущая дата + 30 дней) И (polis is Null или polis = "")
Ответить с цитированием
  #4  
Старый 30.05.2023, 18:11
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,053
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ok, тогда так:
Код:
WHERE
  tab_predmet_zakupki.srok_strahovaniya<Now()+30
AND
(
  tab_predmet_zakupki.polis Is Null
  OR
  tab_predmet_zakupki.polis=""
)
Ответить с цитированием
Этот пользователь сказал Спасибо lmikle за это полезное сообщение:
Ru_Di (01.06.2023)
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 10:58.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter