Имя: Пароль:
1C
1С v8
Запрос по нескольким периодам
0 Nikoss
 
05.03.12
15:16
Есть список, что то типа такого:
Номеклатура - дата нач - дата кон
товар1 - 01.01.2011 - 01.07.2011
товар2 - 01.03.2011 - 01.08.2011
товар3 - 22.07.2011 - 22.12.2011
....
хочу в отчете видеть продажи по этим периодам. в бошку лезет только цикл по этому списку, и внутри запрос с выбором продаж за различный период.(ну естественно, что не есть хорошо)

можно ли это все запихнуть в один запрос?
1 Мандарин
 
05.03.12
15:20
ТЗПериодов + запрос с периодичностью "день". И соединить.
2 mkanaev
 
05.03.12
15:23
конечно обороты с периодичностью день... количество колонок результато эквивалентно количеству периодов, и проверка если поле период входит в результат то это та колонка которая нужна, если нет то 0...
небольшой примет
выбрать
рег.номенклатура как номенклатура,
выбор когда рег.период>= &датаНачалаПериод1 и рег.период<&датаОкончанияПериод1 тогда
   рег.сумма
Иначе
   0
конец как ЗначениеПериода1
.....
3 Inform
 
05.03.12
15:24
(0) делай в цикле, если запросом делать, то надо тянуть обороты за все периоды из твоей таблицы (С Минимум(ДатаНачала) По Максимум(ДатаОкончания)) по всей номенклатуре, т.е. слишком много избыточных данных получится.
Подумай например как быстро будет выполняться запрос, если будет такая таблица номенклатуры:
Товар1 - 01.01.2001 - 02.01.2001
Товар1 - 01.01.2012 - 02.01.2012
4 mkanaev
 
05.03.12
15:27
(3) зачем делать несколько запросов если можно один с периодом день и потом растолкать по полям
5 Inform
 
05.03.12
15:30
(4) см. (3) надо выбрать данные за 2 дня, у тебя обороты за какой период будут в запросе браться по дням, 01.01.2001-02.01.2012?
6 mkanaev
 
05.03.12
15:44
(5)ммм... извеняюсь не понял... ты прав, тогда модно сделать соединения столько сколько периодов... но запрос в цикле это точно не выход