|
выбрать даты между указанным периодом в запросе | ☑ | ||
---|---|---|---|---|
0
serg-lom89
04.08.16
✎
16:03
|
Добрый день
Есть период 01.01.15 - 31.12.15 Подскажите как в запросе выбрать даты между этими днями? |
|||
1
serg-lom89
04.08.16
✎
16:03
|
если быть точнее то
нужно даты дней(конец дня),месяца(конецМесяца),недели и т.д. |
|||
2
lamme
04.08.16
✎
16:04
|
запросом
|
|||
3
anatoly
04.08.16
✎
16:07
|
(0) этот период фиксированный или может быть любым?
(1) примерный результат как должен выглядеть? |
|||
4
serg-lom89
04.08.16
✎
16:08
|
(3) нет период пользователь менят все время постоянно
|
|||
5
serg-lom89
04.08.16
✎
16:08
|
меняет*
|
|||
6
lamme
04.08.16
✎
16:09
|
|РазностьДат(&Дата1,&Дата2, ДЕНЬ) Как КоличествоДней
|РазностьДат(&Дата1,&Дата2, МЕСЯЦ) Как КоличествоМес | Примерно ... |
|||
7
anatoly
04.08.16
✎
16:12
|
ищи запрос который генерит таблицу дат и выбирай из нее между границами.
(6) ему как я понял именно список дат нужен, а не кол-во... |
|||
8
serg-lom89
04.08.16
✎
16:13
|
(7) да...список дат
|
|||
9
StanislawJack
04.08.16
✎
16:16
|
Вот из этого запроса можно выбрать что надо:
ВЫБРАТЬ ДОБАВИТЬКДАТЕ(&НачалоПериода, ДЕНЬ, aa.a * 1000 + bb.b * 100 + cc.c * 10 + dd.d) КАК Период ИЗ (ВЫБРАТЬ 0 КАК a ОБЪЕДИНИТЬ ВЫБРАТЬ 1 ОБЪЕДИНИТЬ ВЫБРАТЬ 2 ОБЪЕДИНИТЬ ВЫБРАТЬ 3 ОБЪЕДИНИТЬ ВЫБРАТЬ 4 ОБЪЕДИНИТЬ ВЫБРАТЬ 5 ОБЪЕДИНИТЬ ВЫБРАТЬ 6 ОБЪЕДИНИТЬ ВЫБРАТЬ 7 ОБЪЕДИНИТЬ ВЫБРАТЬ 8 ОБЪЕДИНИТЬ ВЫБРАТЬ 9) КАК aa ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ 0 КАК b ОБЪЕДИНИТЬ ВЫБРАТЬ 1 ОБЪЕДИНИТЬ ВЫБРАТЬ 2 ОБЪЕДИНИТЬ ВЫБРАТЬ 3 ОБЪЕДИНИТЬ ВЫБРАТЬ 4 ОБЪЕДИНИТЬ ВЫБРАТЬ 5 ОБЪЕДИНИТЬ ВЫБРАТЬ 6 ОБЪЕДИНИТЬ ВЫБРАТЬ 7 ОБЪЕДИНИТЬ ВЫБРАТЬ 8 ОБЪЕДИНИТЬ ВЫБРАТЬ 9) КАК bb ПО (ИСТИНА) ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ 0 КАК c ОБЪЕДИНИТЬ ВЫБРАТЬ 1 ОБЪЕДИНИТЬ ВЫБРАТЬ 2 ОБЪЕДИНИТЬ ВЫБРАТЬ 3 ОБЪЕДИНИТЬ ВЫБРАТЬ 4 ОБЪЕДИНИТЬ ВЫБРАТЬ 5 ОБЪЕДИНИТЬ ВЫБРАТЬ 6 ОБЪЕДИНИТЬ ВЫБРАТЬ 7 ОБЪЕДИНИТЬ ВЫБРАТЬ 8 ОБЪЕДИНИТЬ ВЫБРАТЬ 9) КАК cc ПО (ИСТИНА) ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ 0 КАК d ОБЪЕДИНИТЬ ВЫБРАТЬ 1 ОБЪЕДИНИТЬ ВЫБРАТЬ 2 ОБЪЕДИНИТЬ ВЫБРАТЬ 3 ОБЪЕДИНИТЬ ВЫБРАТЬ 4 ОБЪЕДИНИТЬ ВЫБРАТЬ 5 ОБЪЕДИНИТЬ ВЫБРАТЬ 6 ОБЪЕДИНИТЬ ВЫБРАТЬ 7 ОБЪЕДИНИТЬ ВЫБРАТЬ 8 ОБЪЕДИНИТЬ ВЫБРАТЬ 9) КАК dd ПО (ИСТИНА) ГДЕ aa.a * 1000 + bb.b * 100 + cc.c * 10 + dd.d <= РАЗНОСТЬДАТ(&НачалоПериода, &КонецПериода, ДЕНЬ) |
|||
10
Alexandr_U1982
04.08.16
✎
16:16
|
ВЫБРАТЬ
Цифры.Цифра КАК Цифра ПОМЕСТИТЬ ВТ_Цифры ИЗ (ВЫБРАТЬ 1 КАК Цифра ОБЪЕДИНИТЬ ВЫБРАТЬ 2 ОБЪЕДИНИТЬ ВЫБРАТЬ 3 ОБЪЕДИНИТЬ ВЫБРАТЬ 4 ОБЪЕДИНИТЬ ВЫБРАТЬ 5 ОБЪЕДИНИТЬ ВЫБРАТЬ 6 ОБЪЕДИНИТЬ ВЫБРАТЬ 7 ОБЪЕДИНИТЬ ВЫБРАТЬ 8 ОБЪЕДИНИТЬ ВЫБРАТЬ 9 ОБЪЕДИНИТЬ ВЫБРАТЬ 10) КАК Цифры ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ДОБАВИТЬКДАТЕ(&НачалоПериода, ДЕНЬ, ВТ_Цифры.Цифра - 1 + (ВТ_Цифры1.Цифра - 1) * 10 + (ВТ_Цифры2.Цифра - 1) * 100 + (ВТ_Цифры3.Цифра - 1) * 1000) КАК Дата ИЗ ВТ_Цифры КАК ВТ_Цифры, ВТ_Цифры КАК ВТ_Цифры1, ВТ_Цифры КАК ВТ_Цифры2, ВТ_Цифры КАК ВТ_Цифры3 ГДЕ ДОБАВИТЬКДАТЕ(&НачалоПериода, ДЕНЬ, ВТ_Цифры.Цифра - 1 + (ВТ_Цифры1.Цифра - 1) * 10 + (ВТ_Цифры2.Цифра - 1) * 100 + (ВТ_Цифры3.Цифра - 1) * 1000) МЕЖДУ &НачалоПериода И &КонецПериода |
|||
11
1dvd
04.08.16
✎
16:21
|
если есть календарь, то можно и без этого изврата
|
|||
12
Alexandr_U1982
04.08.16
✎
16:23
|
(11) Календарь может быть не заполнен ;)
Этот изврат работает быстрее, чем чтение календаря ;) |
|||
13
anatoly
04.08.16
✎
16:23
|
(11) а производственный календарь разве не в рамках одного года?
|
|||
14
serg-lom89
04.08.16
✎
16:24
|
(11) я уже подумал,получить список дат главное,а там методом преобразования КонецПериода(ДАТА,неделя) КонецПериода(ДАТА,месяц)..наверное должно взлететь
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |