![]() |
![]() |
![]() |
|
В запрос все даты за период | ☑ | ||
---|---|---|---|---|
0
LeshiyL
27.11.09
✎
08:54
|
Надо сформировать временную таблицу (выборку запроса) содержащую все даты за выбранный период. 1 вариант есть, но там получается больше 10 объединенных подзапросов. Более изящный вариант есть?
|
|||
1
Ksandr
27.11.09
✎
08:55
|
Не понял задачи. Опиши подробнее
|
|||
2
LeshiyL
27.11.09
✎
09:11
|
Есть период например с начада этого месяца до сегодня, так вот выборка запроса должна содержать одно единственное поле типа "Дата" но чтобы в нем были все даты за этот период
|
|||
3
ZanderZ
27.11.09
✎
09:22
|
в зуп, например, есть производственный календарь
|
|||
4
LeshiyL
27.11.09
✎
09:27
|
(3) ага для одного мелкого отчета цеплять зуп
|
|||
5
ZanderZ
27.11.09
✎
09:28
|
(4) я не предлагаю зуп цеплять может что то подобное и в твоей конфе есть, если нет то 10 объединений
|
|||
6
Andry888
27.11.09
✎
09:31
|
(0) программно не хочешь её создать (циклом)?
|
|||
7
Kasper076
27.11.09
✎
09:58
|
Обсуждалось много раз:
ВЫБРАТЬ НАЧАЛОПЕРИОДА(Продажи.Период, ДЕНЬ) КАК Период ИЗ РегистрНакопления.Продажи КАК Продажи ИТОГИ ПО Период ПЕРИОДАМИ(ДЕНЬ, , ) АВТОУПОРЯДОЧИВАНИЕ |
|||
8
IronDemon
27.11.09
✎
10:08
|
Процедура ОсновныеДействияФормыЗапросПоДатам(Кнопка)
Запрос = Новый Запрос; КолДнейМеждуДатами = Цел((НачалоДня(КонПериода) - НачалоДня(НачПериода)) /(24*60*60)); Запрос.УстановитьПараметр("НачДата", НачПериода); Запрос.УстановитьПараметр("КолДнейМеждуДатами", КолДнейМеждуДатами); Запрос.Текст = " |ВЫБРАТЬ ДОБАВИТЬКДАТЕ(&НачДата, День, РазностьДат.НомерДняИзДиапазона) КАК Дата |ИЗ ( | ВЫБРАТЬ 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 <= &КолДнейМеждуДатами) КАК РазностьДат |УПОРЯДОЧИТЬ ПО Дата"; Рез = Запрос.Выполнить().Выгрузить(); ЭлементыФормы.Рез.СоздатьКолонки(); //ЭлементыФормы.Рез.Значение.Скопировать(Результат); ЭлементыФормы.Рез.Колонки.Дата.Формат = "ДФ=dd.MM.yyyy"; КонецПроцедуры |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |