powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Выбрать даты по году с 1 сентября прошлого года по 1 сентября текущего
7 сообщений из 7, страница 1 из 1
Выбрать даты по году с 1 сентября прошлого года по 1 сентября текущего
    #39102586
И-ван-Ыч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!
Пытаюсь выбрать занесенные в таблицу даты по критерию если текущая дата находится в диапазоне с 1 сентября по 31 декабря текущего года, то выбираются даты с первого сентября по 31 декабря текущего же года.
В конструкторе запросов для поля [тРеестр].[Дата_добавления] в условии отбора пишу:
>=CDate(Format("01.09." & Year(Date());"dd.mm.yyyy"))
Код: sql
1.
2.
3.
4.
SELECT тРеестр.*
FROM тРеестр
WHERE (((тРеестр.Дата_добавления)>=CDate(Format("01.09." & Year(Date()),"dd.mm.yyyy"))))
ORDER BY тРеестр.Дата_добавления, тРеестр.№_графика, тРеестр.№_дог, тРеестр.Street, тРеестр.N_dom;


Это работает.

А если текущая дата (Date()) находится в диапазоне ДО 1 сентября текущего года, то надо выбрать все даты с 01 сентября прошлого года и по 31 августа текущего года.
Пытался в конструкторе запросов в условии отбора пытаюсь написать что-то наподобие (было несколько вариантов):
IIf(Month(Date())>9;
([тРеестр].[Дата_добавления])>=CDate(Format("01.09." & Year(Date());"dd.mm.yyyy"));
([тРеестр].[Дата_добавления])>=CDate(Format("01.09." & Year(Date())-1;"dd.mm.yyyy")) And ([тРеестр].[Дата_добавления])<CDate(Format("01.09." & Year(Date());"dd.mm.yyyy")))

Код: sql
1.
2.
3.
4.
SELECT тРеестр.*, тРеестр.Дата_добавления
FROM тРеестр
WHERE (((тРеестр.Дата_добавления)=IIf(Month(Date())>9,([тРеестр].[Дата_добавления])>=CDate(Format("01.09." & Year(Date()),"dd.mm.yyyy")),([тРеестр].[Дата_добавления])>=CDate(Format("01.09." & Year(Date())-1,"dd.mm.yyyy")) And ([тРеестр].[Дата_добавления])<CDate(Format("01.09." & Year(Date()),"dd.mm.yyyy")))))
ORDER BY тРеестр.Дата_добавления, тРеестр.№_графика, тРеестр.№_дог, тРеестр.Street, тРеестр.N_dom;


Вот эта конструкция уже не работает.

Подскажите пожалуйста, как сделать правильно, чтобы работало.
...
Рейтинг: 0 / 0
Выбрать даты по году с 1 сентября прошлого года по 1 сентября текущего
    #39102603
NBjHCBrc6KlSObm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И-ван-Ыч,
Правильно будет вынести принятие решения насчёт текущей даты из запроса, тогда второй вариант сведётся примерно к этому:
Код: plsql
1.
2.
3.
4.
SELECT *
FROM тРеестр
WHERE Дата_добавления Between DateSerial (Year(Date())-1, 9, 1) And DateSerial(Year(Date()), 8, 31)
;
...
Рейтинг: 0 / 0
Выбрать даты по году с 1 сентября прошлого года по 1 сентября текущего
    #39102619
\\\\
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И-ван-Ыч,
Код: plsql
1.
2.
3.
4.
PARAMETERS dtmDate DateTime = Date();
SELECT тРеестр.*
FROM тРеестр
WHERE IIf(Month(dtmDate)<9,[Дата_добавления] Between DateSerial(Year(dtmDate)-1,9,1) And DateSerial(Year(dtmDate),9,0),[Дата_добавления] Between DateSerial(Year(dtmDate),9,1) And DateSerial(Year(dtmDate),12,31));

Вместо 2х один запрос
...
Рейтинг: 0 / 0
Выбрать даты по году с 1 сентября прошлого года по 1 сентября текущего
    #39102656
И-ван-Ыч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
\\\\,
Да я и так пытался один запрос сообразить. А первый - это было так, для начала.
Огромное спасибо Вам за Вашу помощь и ликбез. Ваш запрос идеален.
Спасибо и NBjHCBrc6KlSObm за ликбез.
...
Рейтинг: 0 / 0
Выбрать даты по году с 1 сентября прошлого года по 1 сентября текущего
    #39102666
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И-ван-Ыч,
Если я правильно понял: Вы хотите одновременно увидеть записи с датой и больше и меньше заданной-по любому это будут ВСЕ записи и их можно только пометить (или запрос с параметром)
...
Рейтинг: 0 / 0
Выбрать даты по году с 1 сентября прошлого года по 1 сентября текущего
    #39102753
И-ван-Ыч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdkuИ-ван-Ыч,
Если я правильно понял: Вы хотите одновременно увидеть записи с датой и больше и меньше заданной-по любому это будут ВСЕ записи и их можно только пометить (или запрос с параметром)
Не совсем так.
Если допустим взять на сегодняшнее число, то увидеть надо с 01.09.2015 по текущее число вплоть до 31.12.2015.
Если взять любое число 2016 года вплоть до 31.08.2016, то увидеть надо с 01.09.2015 по 31.08.2016. Но могут же быть и числа раньше 01.09.2015 их не надо.
Видимо можно написать что-то вроде сравнения текущей даты с 01.09.текущего года и от этого плясать.
...
Рейтинг: 0 / 0
Выбрать даты по году с 1 сентября прошлого года по 1 сентября текущего
    #39102762
И-ван-Ыч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И так со сдвижкой каждый год. Что-то типа год с 01 сентября и заканчивается 31 августа другого года.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Выбрать даты по году с 1 сентября прошлого года по 1 сентября текущего
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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