powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / сравнение дат в запросе
9 сообщений из 9, страница 1 из 1
сравнение дат в запросе
    #39997718
_s_e_r_g_e_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то торможу! Подскажите пожалуйста


как в запросе сравнить даты , если в одном столбце могут встречаться NULL

Есть поле с количеством доставленного товара - shipped
D_plan_deliv - плановая дата доставки
D_fact_deliv - фактическая дата доставки (она может быть NUll)

Код: sql
1.
2.
3.
SELECT datatable.Shipped
FROM datatable
WHERE D_plan_deliv is not null  and CDate(D_fact_deliv)<=CDate(D_plan_deliv);



В результате выполнения запроса появляется ошибка - недопустимое использование NULL
...
Рейтинг: 0 / 0
сравнение дат в запросе
    #39997722
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
IIf(IsNull(D_fact_deliv), "31.12.2020", D_fact_deliv)
...
Рейтинг: 0 / 0
сравнение дат в запросе
    #39997751
_s_e_r_g_e_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не работает! Вернее некорректно работает

Вот запрос
Код: sql
1.
2.
3.
SELECT datatable.Shipped
FROM datatable
WHERE IIf(IsNull(D_fact_deliv), "31.12.2500",CDate(D_fact_deliv)<=CDate(D_plan_deliv));



Данные показал на картинке

В результате выводится 2,1,3 , а должно быть 1,3 , т.е. где D_fact_deliv=NULL значение тоже попадает
...
Рейтинг: 0 / 0
сравнение дат в запросе
    #39997754
_s_e_r_g_e_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вопрос снят. Спасибо

Код: sql
1.
2.
3.
SELECT datatable.Shipped
FROM datatable
WHERE IIf(IsNull(D_fact_deliv), CDate(D_plan_deliv)>="31.12.2500", CDate(D_fact_deliv)<=CDate(D_plan_deliv))
...
Рейтинг: 0 / 0
сравнение дат в запросе
    #39997756
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для корректной работы в поле должно быть значение (и подставить дату одинаковую для всех записей,по-моему,неправильно). Если поле D_plan_deliv NULL(пустое) оно больше,меньше или равно D_fact_deliv и наоборот ?
NULL-интересная КОНСТАНТА а не какое-либо значение и поле D_plan_deliv просто не должно быть пустым(что запросто реализуется на уровне таблицы)-а как это:плановая дата доставки не определена-"да хоть 100 лет" какой смысл тогда в этой таблице?
И почитайте HELP про формирование строки WHERE
...
Рейтинг: 0 / 0
сравнение дат в запросе
    #39997759
_s_e_r_g_e_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
фактическая дата доставки может быть не определена, так как доставка могла еще не произойти.
Плановая всегда установлена.
...
Рейтинг: 0 / 0
сравнение дат в запросе
    #39997762
_s_e_r_g_e_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что-то некорректно все равно работает, проверяю в экселе и суммы не совпадают!
...
Рейтинг: 0 / 0
сравнение дат в запросе
    #39997765
_s_e_r_g_e_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот, так корректно работает

Код: sql
1.
2.
3.
SELECT datatable.Shipped
FROM datatable
WHERE (((IIf(IsNull([D_fact_deliv]),0,CDate([D_fact_deliv])<=CDate([D_plan_deliv])))<>False));
...
Рейтинг: 0 / 0
сравнение дат в запросе
    #39997767
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
прошу прощения перепутал поля план и факт
гляньте это:
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / сравнение дат в запросе
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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