powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Не отрабатывает условие с датой
9 сообщений из 9, страница 1 из 1
Не отрабатывает условие с датой
    #39755800
elimpion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день, помогите разобраться, почему у меня не работает условие на дату
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
 WHERE (   ((:needClose = :needOpen)
       AND (c.firstopendate BETWEEN :BeginDate AND :EndDate)) 
        OR ((:needOpen = -1) 
       AND (nvl(c.closedate, (getMaxDate)) > :BeginDate) 
       AND (   (ct.contracttype <> 1) 
            OR (ct.contracttype = 1 AND st.statesign = 'BETRAY')))
        OR ((:needClose = -1) 
       AND (:BeginDate > nvl(c.closedate, (getMaxDate)))
       ))
...
Рейтинг: 0 / 0
Не отрабатывает условие с датой
    #39755803
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://www.bugtraq.ru/forum/faq/general/smart-questions.html] RTFM
...
Рейтинг: 0 / 0
Не отрабатывает условие с датой
    #39755806
elimpion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для примера, BeginDate = 01/11/2018 и EndDate = 04/11/2018
needClose = 1 и needOpen = 1
должно выполнятся условие
((:needClose = :needOpen)
AND (c.firstopendate BETWEEN :BeginDate AND :EndDate))
Но в отчет попадают данные которые даже не входят в этот промежуток даты
...
Рейтинг: 0 / 0
Не отрабатывает условие с датой
    #39755809
IMNO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Тип столбца firstOpenDate в таблице какой?
2. Тип переменных beginDate и endDate какой?
3. Условие WHERE приведено целиком?
...
Рейтинг: 0 / 0
Не отрабатывает условие с датой
    #39755810
elimpion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IMNO,

тип столбца firstOpenDate DATE
тип переменных DATE
условие приведено целиком
...
Рейтинг: 0 / 0
Не отрабатывает условие с датой
    #39755811
elimpion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если я это условие
Код: plsql
1.
AND (c.firstopendate BETWEEN :BeginDate AND :EndDate)

отдельно пропишу, тогда она нормально отработает

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
 WHERE (   ((:needClose = :needOpen)
       AND (c.firstopendate BETWEEN :BeginDate AND :EndDate)) 
        OR ((:needOpen = -1) 
       AND (nvl(c.closedate, (getMaxDate)) > :BeginDate) 
       AND (   (ct.contracttype <> 1) 
            OR (ct.contracttype = 1 AND st.statesign = 'BETRAY')))
        OR ((:needClose = -1) 
       AND (:BeginDate > nvl(c.closedate, (getMaxDate)))
       ))
   AND (c.firstopendate BETWEEN :BeginDate AND :EndDate)  
...
Рейтинг: 0 / 0
Не отрабатывает условие с датой
    #39755816
IMNO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы уверены, что в Вашу процедуру/скрипт передаются параметры needClose = 1 и needOpen = 1?
Судя по всему у Вас отрабатывает случай needClose = - 1 и needOpen = - 1.
...
Рейтинг: 0 / 0
Не отрабатывает условие с датой
    #39755821
elimpion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IMNO,

:needClose = -1
:needOpen = -1

видимо он в этом случае все условия выполняет
(:needClose = :needOpen) и (:needOpen = -1) и (:needClose = -1)
как сделать тогда, чтобы только выполнялось (:needClose = :needOpen) ?

:needClose/:needOpen может быть 1 или 0 в зависимости выставлен чекбокс или нет
...
Рейтинг: 0 / 0
Не отрабатывает условие с датой
    #39755822
elimpion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Разобрался, дописал запрос
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
WHERE (   (((:needClose) = (:needOpen))
       AND (c.firstopendate BETWEEN :BeginDate AND :EndDate)) 
        OR ((:needOpen = -1) AND ((:needClose) = 0)   
       AND (nvl(c.closedate, (getMaxDate)) > :BeginDate) 
       AND (   (ct.contracttype <> 1) 
            OR (ct.contracttype = 1 AND st.statesign = 'BETRAY')))
        OR ((:needClose = -1) AND (:needOpen = 0) 
       AND (:BeginDate > nvl(c.closedate, (getMaxDate)))
       ))
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Не отрабатывает условие с датой
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]