|
В запросе получить выборку месяцев за интервал |
☑ |
0
echo77
18.04.12
✎
19:56
|
Кто-нибудь делал такое:
есть два параметра у запроса &НачалоПериода, &КонецПериода.
Нужно получить выборку из месяцев, расположенных между этими двумя датами.
Например:
&НачалоПериода = 05.12.2011
&КонецПериода = 03.03.2012
Выборка должна выглядеть так:
01.12.2011
01.01.2012
01.02.2012
01.03.2012
пытался сделать через порождающий запрос, но получилось как-то не весело
|
|
1
andrewks
18.04.12
✎
19:59
|
а в чём проблема? показывай код
|
|
2
Один С
18.04.12
✎
20:03
|
соединить с производственным календарем - самое простое и расово неверное решение..
|
|
3
Лефмихалыч
18.04.12
✎
20:22
|
"ВЫБРАТЬ
| ДАтАВРЕМЯ(2012,1,1) Как Месяц
|ПОМЕСТИТЬ ВТ
|ОБЪЕДИНИТЬ ВСЕ
|ВЫБРАТЬ
| ДАтАВРЕМЯ(2012,2,1) Как Месяц
|ОБЪЕДИНИТЬ ВСЕ
|ВЫБРАТЬ
| ДАтАВРЕМЯ(2012,3,1) Как Месяц
|ОБЪЕДИНИТЬ ВСЕ
|ВЫБРАТЬ
| ДАтАВРЕМЯ(2012,4,1) Как Месяц
|// ...
|;
|ВЫБРАТЬ
| ВТ.Месяц
|ГДЕ Месяц > &НачалоПериода и Месяц <&КонецПерида
|ОБЪЕДИНИТЬ ВСЕ
|ВЫБРАТЬ &НачалоПерида
|ОБЪЕДИНИТЬ ВСЕ
|ВЫБРАТЬ &КонецПерида
|"
ну, и посорттировать
|
|
4
andrewks
18.04.12
✎
20:28
|
(3) гы-гы. толсто
|
|
5
DimVad
18.04.12
✎
21:00
|
Может, просто сделать, как делают в типовых расчетах ЗП, например ? Типа, сформировать ТЗ программно и засунуть в запрос ?
- Лелик, это не эстетично !
- Зато дешево, надежно и практично !
|
|
6
le_
18.04.12
✎
21:01
|
(0)
ВЫБРАТЬ
0 КАК Цифра
ПОМЕСТИТЬ Цифры
ОБЪЕДИНИТЬ
ВЫБРАТЬ
1
ОБЪЕДИНИТЬ
ВЫБРАТЬ
2
ОБЪЕДИНИТЬ
ВЫБРАТЬ
3
ОБЪЕДИНИТЬ
ВЫБРАТЬ
4
ОБЪЕДИНИТЬ
ВЫБРАТЬ
5
ОБЪЕДИНИТЬ
ВЫБРАТЬ
6
ОБЪЕДИНИТЬ
ВЫБРАТЬ
7
ОБЪЕДИНИТЬ
ВЫБРАТЬ
8
ОБЪЕДИНИТЬ
ВЫБРАТЬ
9
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Тысячи.Цифра * 1000 + Сотни.Цифра * 100 + Десятки.Цифра * 10 + Единицы.Цифра КАК Число
ПОМЕСТИТЬ Числа
ИЗ
Цифры КАК Тысячи,
Цифры КАК Сотни,
Цифры КАК Десятки,
Цифры КАК Единицы
ГДЕ
Тысячи.Цифра * 1000 + Сотни.Цифра * 100 + Десятки.Цифра * 10 + Единицы.Цифра <= РАЗНОСТЬДАТ(&НачалоПериода, &КонецПериода, МЕСЯЦ)
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(&НачалоПериода, МЕСЯЦ), МЕСЯЦ, Числа.Число) КАК Период
ИЗ
Числа КАК Числа
УПОРЯДОЧИТЬ ПО
Период
|
|
7
DimVad
18.04.12
✎
21:05
|
(6) +100500 Вроде, ничего лучше уже и придумать невозможно...
|
|
8
echo77
20.04.12
✎
06:25
|
(6) угу, спасибо. Как раз то что надо
|
|
9
echo77
20.04.12
✎
06:27
|
(5) Программно засунуть в запрос у меня не получится, т.к. пишу отчет на СКД в котором в запросе полное соединение
|
|