0
Гаврилин Игор
07.06.16
✎
17:06
|
Доброго, коллеги!
Чет я в тупике - мне нужна была в запросе виртуальная табличка с датами на каждый день в выбранном периоде. Что-то вроде:
01.01.2016 //&НачалоПериода
02.01.2016
...
30.04.2016
01.05.2016 //&ОкончаниеПериода
Пробовал через РАЗНОСТЬДАТ() и ДОБАВИТЬКДАТЕ(), не смог. В итоге тупо в цикле загнал даты в табличку, а табличку подсовывал в запрос в качестве параметра. Все получилось и работает, но все еще вопрос можно ли обойтись только запросом?
|
|
3
lodger
07.06.16
✎
17:25
|
лови методом лома. это даже работает, на пустом месте(без регистров интервальных).
ВЫБРАТЬ 0 КАК Цифра
ПОМЕСТИТЬ Цифры
ОБЪЕДИНИТЬ ВЫБРАТЬ 1
ОБЪЕДИНИТЬ ВЫБРАТЬ 2
ОБЪЕДИНИТЬ ВЫБРАТЬ 3
ОБЪЕДИНИТЬ ВЫБРАТЬ 4
ОБЪЕДИНИТЬ ВЫБРАТЬ 5
ОБЪЕДИНИТЬ ВЫБРАТЬ 6
ОБЪЕДИНИТЬ ВЫБРАТЬ 7
ОБЪЕДИНИТЬ ВЫБРАТЬ 8
ОБЪЕДИНИТЬ ВЫБРАТЬ 9;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ДОБАВИТЬКДАТЕ(&НачалоПериода, ДЕНЬ, СписокДней.Дней) КАК Период
ИЗ
(ВЫБРАТЬ
СотниТысяч.Цифра * 100000 + ДесяткиТысяч.Цифра * 10000 + Тысячи.Цифра * 1000 + Сотни.Цифра * 100 + Десятки.Цифра * 10 + Единицы.Цифра КАК Дней
ИЗ
Цифры КАК СотниТысяч
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Цифры КАК ДесяткиТысяч
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Цифры КАК Тысячи
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Цифры КАК Сотни
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Цифры КАК Десятки
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Цифры КАК Единицы
ПО (Десятки.Цифра * 10 <= РАЗНОСТЬДАТ(&НачалоПериода, &КонецПериода, ДЕНЬ))
И (Единицы.Цифра <= РАЗНОСТЬДАТ(&НачалоПериода, &КонецПериода, ДЕНЬ))
ПО (Сотни.Цифра * 100 <= РАЗНОСТЬДАТ(&НачалоПериода, &КонецПериода, ДЕНЬ))
ПО (Тысячи.Цифра * 1000 <= РАЗНОСТЬДАТ(&НачалоПериода, &КонецПериода, ДЕНЬ))
ПО (ДесяткиТысяч.Цифра * 10000 <= РАЗНОСТЬДАТ(&НачалоПериода, &КонецПериода, ДЕНЬ))
ПО (СотниТысяч.Цифра * 100000 <= РАЗНОСТЬДАТ(&НачалоПериода, &КонецПериода, ДЕНЬ))
ГДЕ
СотниТысяч.Цифра * 100000 + ДесяткиТысяч.Цифра * 10000 + Тысячи.Цифра * 1000 + Сотни.Цифра * 100 + Десятки.Цифра * 10 + Единицы.Цифра <= РАЗНОСТЬДАТ(&НачалоПериода, &КонецПериода, ДЕНЬ)) КАК СписокДней
УПОРЯДОЧИТЬ ПО
Период
|
|
6
lodger
07.06.16
✎
17:31
|
+(5) 40000+ строк формирует за 200+мс, но как только этот шаг запроса выполнен - начинается перемещение чудотаблицы, которое начинает есть время.
из (3) для бытовых нужд надо убрать все что больше Сотни.
|
|