Гость
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / фильтр по дате / 9 сообщений из 9, страница 1 из 1
17.06.2011, 09:40
    #37312219
checkin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
фильтр по дате
Добрый день,
Нужно сделать фильтр по дате в отчете (обычный отчет).
Создаю item P13_DATEP (тип Date Picker (use item format mask), format mask -> DD.MM.YYYY).
Пишу в Region source sql запрос:
...
Код: plaintext
and upper(a.datep) = to_date(:P13_DATEP,'dd.mm.yyyy') or :P13_DATEP='' or ::P13_DATEP=- 1 )
...

Но когда в поиске выбираю какую-нибудь (существующую в отчете) дату, выходит ошибка report error:ORA-01722: invalid number. Подскажите, что делаю не так или может по другому это делается?
...
Рейтинг: 0 / 0
17.06.2011, 10:53
    #37312385
freeek
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
фильтр по дате
checkin,

Код: plaintext
and upper(a.datep) = to_date(:P13_DATEP,'dd.mm.yyyy') or :P13_DATEP='' or ::P13_DATEP=- 1 )

: :P13_DATEP=-1 - лишнее двоеточие, это раз.

И, попробуйте не to_date, а to_char, мне помогало.
...
Рейтинг: 0 / 0
17.06.2011, 11:14
    #37312437
SvUser
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
фильтр по дате
мда. учите SQL.

1. :P13_DATEP строка, а не дата, это, как я понимаю, вы уже разобрались.
2. В SQL запросах выражения сравниваются одного типа. Если не разбираетесь в неявных преобразованиях, преобразуйте везде явно к одному типу слева либо справа от знака равенства! date, varchar2, number, разбирайтесь.
3. '' это null. Изучайте как нужно писать условия на null.
...
Рейтинг: 0 / 0
17.06.2011, 11:49
    #37312542
SvUser
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
фильтр по дате
checkin
Код: plaintext
and upper(a.datep) = to_date(:P13_DATEP,'dd.mm.yyyy') or :P13_DATEP='' or ::P13_DATEP=- 1 )

Мда, это ж надо умудриться столько ошибок в простейшем sql выражении написать....
...
Рейтинг: 0 / 0
17.06.2011, 12:50
    #37312713
checkin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
фильтр по дате
freeek,
не думаю что ошибка из за двоеточии. to_char пробовала, не помогает.
...
Рейтинг: 0 / 0
17.06.2011, 14:13
    #37312926
checkin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
фильтр по дате
Исправила. Все работает. Спасибо!

a.datep = to_date(:P13_DATEP,'dd.mm.yyyy') or :P13_DATEP is null')
...
Рейтинг: 0 / 0
17.06.2011, 14:18
    #37312944
freeek
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
фильтр по дате
checkin,

Код: plaintext
and upper(a.datep) = upper(to_char(:P13_DATEP,'dd.mm.yyyy')) or :P13_DATEP is null or :P13_DATEP='-1')

Только последнее условие мне не очень понятно. Зачем сравнивать дату с минус единицей.
...
Рейтинг: 0 / 0
17.06.2011, 14:19
    #37312946
freeek
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
фильтр по дате
checkin,
Это хорошо, только впредь читайте внимательней памятку и давайте больше информации :) Например, формат поля и т.д.
...
Рейтинг: 0 / 0
20.06.2011, 15:53
    #37316127
checkin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
фильтр по дате
freeekcheckin,

Код: plaintext
and upper(a.datep) = upper(to_char(:P13_DATEP,'dd.mm.yyyy')) or :P13_DATEP is null or :P13_DATEP='-1')

Только последнее условие мне не очень понятно. Зачем сравнивать дату с минус единицей.

Не сообразила просто. Так я сравнивала когда у меня varchar был. Там у я в Null return value '-1' ставила.
...
Рейтинг: 0 / 0
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / фильтр по дате / 9 сообщений из 9, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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