![]() |
![]() |
|
Все даты между НачалоПериода и ОкончаниеПериода запросом | ☑ | ||
---|---|---|---|---|
0
Нув-Нув
18.09.14
✎
09:25
|
Доброго дня. Наткнулся на инфостарте на статью, в котором показывается способ, с помощью которого можно получить таблицу дат с каждым днем между двумя заданными параметрами. БЕЗ ИСПОЛЬЗОВАНИЯ производственного календаря.
Мне показалось интересным. Вот делюсь: Запрос = Новый Запрос; Запрос.Текст = " |ВЫБРАТЬ | Цифры.Поле1 КАК Цифра |ПОМЕСТИТЬ Цифры |ИЗ | (ВЫБРАТЬ | 1 КАК Поле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 < 1000 |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ДОБАВИТЬКДАТЕ(&НачалоПериода, ДЕНЬ, ТаблицаЧисел.Число) КАК Дата |ИЗ | ТаблицаЧисел КАК ТаблицаЧисел |ГДЕ | ДОБАВИТЬКДАТЕ(&НачалоПериода, ДЕНЬ, ТаблицаЧисел.Число) <= &ОкончаниеПериода | |УПОРЯДОЧИТЬ ПО | Дата"; Запрос.УстановитьПараметр("НачалоПериода", <НачалоПериода>); //Дата Запрос.УстановитьПараметр("ОкончаниеПериода", <ОкончаниеПериода>); //Дата РезультатЗапроса = Запрос.Выполнить(); |
|||
2
Нув-Нув
18.09.14
✎
09:28
|
(1) хм... что не так?
|
|||
3
GROOVY
18.09.14
✎
09:28
|
В СКД есть дополнение группировки по периоду.
Просто в запросах есть дополнение итогов ПЕРИОДАМИ. Не надо извращаться. |
|||
4
Нув-Нув
18.09.14
✎
09:30
|
(3) ну скд это уже все-таки для представления результата, а иногда такое требуется в расчетных механизмах, допустим при проведении.
Дополнение итогов периодами - это же для итогов? во временной таблице такого не сделать. |
|||
5
1Сергей
18.09.14
✎
09:30
|
Цифры.Цифра
Кто-то, похоже, мой код скомуниздил |
|||
6
1Сергей
18.09.14
✎
09:31
|
(5) + дайка ссылочку
|
|||
7
Нув-Нув
18.09.14
✎
09:32
|
(6) http://infostart.ru/public/158617/
Извини, раз без спроса взял... Плюс к статье поставил) |
|||
8
Ник второй
18.09.14
✎
09:32
|
(2) Тем что баня, а так же производственный календарь есть во всех конфах.
Да и постить чужой труд ради постинга, это тоже верх идиотизма. |
|||
9
Нув-Нув
18.09.14
✎
09:33
|
(8) ну как скажешь
|
|||
10
1Сергей
18.09.14
✎
09:34
|
(7) нет, код не полностью мой, доработан
|
|||
11
МишельЛагранж
18.09.14
✎
09:44
|
вот тут в дургом виде немного:
Остатки товаров на каждый (10) уже давно варианты разные присутствуют (8)"а так же производственный календарь есть во всех конфах" и что календарь? обратись из СКД к календарю (3)"В СКД есть дополнение группировки по периоду." ПЕРИОД и "ПО ДНЯМ" - разные вещи, не находите? ДЕНЬ, МЕСЯЦ, КВАРТАЛ - не то же самое, что "01.01.2014, 02.01.2014, 03.01.2014" |
|||
12
МишельЛагранж
18.09.14
✎
09:45
|
У меня есть вариант еще короче, кстати.
|
|||
13
Нув-Нув
18.09.14
✎
09:46
|
(12) давай)
|
|||
14
МишельЛагранж
18.09.14
✎
09:48
|
(13) это разновидность из 11 с использованием временной таблицы)
Хотя все они - разновидности друг друга )) |
|||
15
GROOVY
18.09.14
✎
09:54
|
(11) Дополнение по периоду (любому) есть в итогах запроса. И по дням и по кварталам и по годам.
|
|||
16
silent person
18.09.14
✎
11:21
|
ткните носом что я не так делаю.
взял запрос из Справки по встроенному языку Дополнение дат Пример: // Получить количество продаж по клиентам по месяцам ВЫБРАТЬ Получатель, НАЧАЛОПЕРИОДА(Дата, МЕСЯЦ) КАК Период, КОЛИЧЕСТВО(Ссылка) КАК КоличествоПокупок ИЗ Документ.РасхНакл СГРУППИРОВАТЬ ПО Получатель, НАЧАЛОПЕРИОДА(Дата, МЕСЯЦ) ИТОГИ СУММА(КоличествоПокупок) ПО Период ПЕРИОДАМИ(Месяц, ДАТАВРЕМЯ(2000, 07, 01), ДАТАВРЕМЯ(2000, 12, 01)) выполняю его в консоли запросов Демо базы БП 3.0 результат выглядит так http://imglink.ru/show-image.php?id=dea24ca2ae09f329cdff6e4c4c1f5406 даты не дополняются :( |
|||
17
GROOVY
18.09.14
✎
11:33
|
Чтобы даты дополнялись нужно в выборке запроса указать ключевое слово "ВСЕ".
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |