Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 Как отобразить интервал дат от начальной до текущей минус 2 месяца?  [new]
Dmytrij
Member

Откуда:
Сообщений: 140
Необходимо вывести данные в запросе за отчетный период (бухгалтерия). Отчетный период - это все даты, которые рассчитываются так: текущий месяц минус 2 включительно.

Т.е. если сегодня 6.05, то в отчетный период входят все даты, начиная с самого начала и до 31.03 включительно.

Вопрос - как реализовать такой фильтр?
6 май 07, 18:59    [4105298]     Ответить | Цитировать Сообщить модератору
 Re: Как отобразить интервал дат от начальной до текущей минус 2 месяца?  [new]
Rivkin Dmitry
Member

Откуда: Israel
Сообщений: 5500
Between
DateSerial(Year(Date),Month(DateAdd("m",-2,Date)),1) And
DateAdd("d", -1, DateSerial(Year(Date),Month(DateAdd("m",-1,Date)),1))
6 май 07, 19:04    [4105302]     Ответить | Цитировать Сообщить модератору
 Re: Как отобразить интервал дат от начальной до текущей минус 2 месяца?  [new]
mds_world
Member

Откуда: Ташкент
Сообщений: 27548
автор
Т.е. если сегодня 6.05, то в отчетный период входят все даты, начиная с самого начала и до 31.03 включительно
Эта часть постановки задачи расходится с
текущий месяц минус 2 включительно.
Наверное, имеется в виду до 31.05?


А по существу вопроса так
Where Month([ПолеСДатой]) Between Month(Date)-2 And Month(Date)
6 май 07, 19:06    [4105303]     Ответить | Цитировать Сообщить модератору
 Re: Как отобразить интервал дат от начальной до текущей минус 2 месяца?  [new]
mds_world
Member

Откуда: Ташкент
Сообщений: 27548
mds_world
Where Month([ПолеСДатой]) Between Month(Date)-2 And Month(Date)
Неправильно, год не учел. См. решение Rivkin Dmitry
6 май 07, 19:23    [4105337]     Ответить | Цитировать Сообщить модератору
 Re: Как отобразить интервал дат от начальной до текущей минус 2 месяца?  [new]
Dmytrij
Member

Откуда:
Сообщений: 140
mds_world
mds_world
Where Month([ПолеСДатой]) Between Month(Date)-2 And Month(Date)
Неправильно, год не учел. См. решение Rivkin Dmitry


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

Rivkin Dmitry
Between
DateSerial(Year(Date),Month(DateAdd("m",-2,Date)),1) And
DateAdd("d", -1, DateSerial(Year(Date),Month(DateAdd("m",-1,Date)),1))


а тут Аксес ругается на ошибку синтаксиса, мол "введена запятая, перед которой отсутствует значение или идентификатор"...
6 май 07, 21:50    [4105531]     Ответить | Цитировать Сообщить модератору
 Re: Как отобразить интервал дат от начальной до текущей минус 2 месяца?  [new]
Dmytrij
Member

Откуда:
Сообщений: 140
По синтаксису правильно так

Between DateSerial(Year(Date());Month(DateAdd("m";-2;Date()));1) And DateAdd("d";-1;DateSerial(Year(Date()-5);Month(DateAdd("m";-1;Date()));1))

Но с годами все равно что-то напутано...
6 май 07, 22:18    [4105553]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить