Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 03.10.2013
Сообщений: 6
1

два оператора between в одном запросе не работают

21.01.2014, 11:09. Показов 1004. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день, может кто подскажет. Нужно сделать выборку с проверкой диапазона по двум полям типа DateTime. Where выглядит так:
SQL
1
WHERE  (data3 BETWEEN :dat1 AND :dat2) OR (data2 BETWEEN :dat1 AND :dat2)
В результат попадают только записи у которых выполняется первый between, если меняешь местами data3 и data2, опять выполняется тот between, который стоит первый, OR не работает. Заранее спасибо
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.01.2014, 11:09
Ответы с готовыми решениями:

Реализовать два условия в одном запросе >_<
Может кто то подскажет, каким образом делается данное задание? Проблема именно с тем чтобы все...

Обновить два раза в одном запросе
update `otvod` set `zak` = (select (`zakaz`.`vk` / '17.5') from `zakaz` where (`zakaz`.`vk` * '100'...

Два результата при одном запросе
Ребят, нужна помощь : есть такой запрос: Проблема в том, что при проведении 1 документа все...

Два значения от submit/button в одном запросе
Может ли быть такая ситуация, что браузер пошлёт на обработку значение сразу из 2 конфликтующих...

3
Native x86
Эксперт Hardware
5594 / 3338 / 951
Регистрация: 13.02.2013
Сообщений: 10,587
21.01.2014, 13:08 2
Какая база? Вряд ли тут причина в Delphi и/или компонентах доступа.
0
0 / 0 / 0
Регистрация: 03.10.2013
Сообщений: 6
21.01.2014, 14:51  [ТС] 3
База Microsoft SQL Server 2008, когда создаю запрос в среде SQL выбирает записи нормально

В Delphi код выглядит вот так

Delphi
1
2
3
4
5
6
7
8
9
10
ADOQueryOborud.SQL.Text:=' SELECT Podrazdel.Name_podr, Podrazdel.id_podr, Oborudovanie.*, Oborud_v_podr.id_oborud_v_podr '+
                         ' FROM  Oborud_v_podr LEFT OUTER JOIN '+
                         ' Oborudovanie ON Oborud_v_podr.id_oborud = Oborudovanie.id_oborud RIGHT OUTER JOIN '+
                         ' Podrazdel ON Oborud_v_podr.id_podr = Podrazdel.Id_podr '+
                         ' Where (data_rem2 between :dat1 and :dat2) OR (data_rem3 between :dat1 and :dat2)'+
                          'Order by Name_oborud';
 
 
ADOQueryOborud.Parameters.ParamValues['dat1']:=datn;
ADOQueryOborud.Parameters.ParamValues['dat2']:=datk;
0
Native x86
Эксперт Hardware
5594 / 3338 / 951
Регистрация: 13.02.2013
Сообщений: 10,587
21.01.2014, 14:59 4
nikonow, используйте разные имена параметров:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
ADOQueryOborud.SQL.Text:=' SELECT Podrazdel.Name_podr, Podrazdel.id_podr, Oborudovanie.*, Oborud_v_podr.id_oborud_v_podr '+
                         ' FROM  Oborud_v_podr LEFT OUTER JOIN '+
                         ' Oborudovanie ON Oborud_v_podr.id_oborud = Oborudovanie.id_oborud RIGHT OUTER JOIN '+
                         ' Podrazdel ON Oborud_v_podr.id_podr = Podrazdel.Id_podr '+
                         ' Where (data_rem2 between :dat2_1 and :dat2_2) OR (data_rem3 between :dat3_1 and :dat3_2)'+
                          'Order by Name_oborud';
 
 
ADOQueryOborud.Parameters.ParamValues['dat2_1']:=datn;
ADOQueryOborud.Parameters.ParamValues['dat2_2']:=datk;
ADOQueryOborud.Parameters.ParamValues['dat3_1']:=datn;
ADOQueryOborud.Parameters.ParamValues['dat3_2']:=datk;
1
21.01.2014, 14:59
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.01.2014, 14:59
Помогаю со студенческими работами здесь

Два оператора On Error GoTo в одном макросе не срабатывают
Всем доброе время суток ! Макрос On Error GoTo metkaopen ...

Как в одном запросе в БД MySQL сделать два insert.
вот куски кода,по отдельности заносятся,а вместе - всеми способами перепробовал,Не заносит(......

Два привода на одном компьютере не работают вместе
Подскажите пожалуста. У меня стоит два дисковода. Один новый. Другой от старово блока нережит dvd...

Сравнить два целых числа, не используя условного оператора, оператора выбора и так же символов сравнения
Добрый день уважаемые программисты, хотелось, чтобы вы помогли мне в решении одной задачи, а именно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru