Имя: Пароль:
1C
1С v8
v8: Реально ли сделать такое запросом
0 razbiralshik
 
17.04.13
11:07
ВЫБРАТЬ
   НАЧАЛОПЕРИОДА(ПродажиАвтомобилейОбороты.Период, ДЕНЬ) КАК ДатаДень,
   ДЕНЬ(ПродажиАвтомобилейОбороты.Период) КАК ЧислоДень,
   СУММА(ЕСТЬNULL(ПродажиАвтомобилейОбороты.КоличествоОборот, 0)) КАК Количество,
   СУММА(ЕСТЬNULL(ПродажиАвтомобилейОбороты.СуммаОборот, 0)) КАК Сумма
ИЗ
   РегистрНакопления.ПродажиАвтомобилей.Обороты(&ДатаНачала, &ДатаОкончания, День, ) КАК ПродажиАвтомобилейОбороты

СГРУППИРОВАТЬ ПО
   НАЧАЛОПЕРИОДА(ПродажиАвтомобилейОбороты.Период, ДЕНЬ),
   ДЕНЬ(ПродажиАвтомобилейОбороты.Период)


Тут получаем количество и суммы продаж по дням за период, может выглядеть так:

02.03.2013 -  2 - 10 - 10000
05.03.2013 -  5 -  1 - 1000
10.03.2013 - 10 -  5 - 5000

,а нужно чтобы выглядело так:

01.03.2013 -  0 -  0 - 0
02.03.2013 -  2 - 10 - 10000
03.03.2013 -  0 -  0 - 0
04.03.2013 -  0 -  0 - 0
05.03.2013 -  5 -  1 - 1000
06.03.2013 -  0 -  0 - 0
07.03.2013 -  0 -  0 - 0
08.03.2013 -  0 -  0 - 0
09.03.2013 -  0 -  0 - 0
10.03.2013 - 10 -  5 - 5000


Вот как так сделать запросом?
1 х86
 
17.04.13
11:08
присоединяй к таблице дат
2 fisher
 
17.04.13
11:09
Если для вывода в печатную форму, то СКД умеет дополнять периоды.
3 razbiralshik
 
17.04.13
11:10
(2) там работа с экселем
4 razbiralshik
 
17.04.13
11:11
(1) а подробнее расскажи, чтобы понятно было что имеешь ввиду, дальше сам разберусь
5 fisher
 
17.04.13
11:12
Но если очень-очень хочешь запросом, то вот тебе заготовка для таблицы дат:
ВЫБРАТЬ
   0 КАК Цифра
ПОМЕСТИТЬ Цифры

ОБЪЕДИНИТЬ

ВЫБРАТЬ
   1

ОБЪЕДИНИТЬ

ВЫБРАТЬ
   2

ОБЪЕДИНИТЬ

ВЫБРАТЬ
   3

ОБЪЕДИНИТЬ

ВЫБРАТЬ
   4

ОБЪЕДИНИТЬ

ВЫБРАТЬ
   5

ОБЪЕДИНИТЬ

ВЫБРАТЬ
   6

ОБЪЕДИНИТЬ

ВЫБРАТЬ
   7

ОБЪЕДИНИТЬ

ВЫБРАТЬ
   8

ОБЪЕДИНИТЬ

ВЫБРАТЬ
   9
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ДниПериода.ДеньПериода КАК ДеньПериода,
ПОМЕСТИТЬ ДниПериода
ИЗ
   (ВЫБРАТЬ
       ДОБАВИТЬКДАТЕ(&НачалоПериода, ДЕНЬ, НомераДнейПериода.НомерДня) КАК ДеньПериода,
   ИЗ
       (ВЫБРАТЬ
           Тысячи.Цифра * 1000 + Сотни.Цифра * 100 + Десятки.Цифра * 10 + Единицы.Цифра КАК НомерДня
       ИЗ
           Цифры КАК Тысячи,
           Цифры КАК Сотни,
           Цифры КАК Десятки,
           Цифры КАК Единицы
       ГДЕ
           Тысячи.Цифра * 1000 + Сотни.Цифра * 100 + Десятки.Цифра * 10 + Единицы.Цифра <= РАЗНОСТЬДАТ(&НачалоПериода, &КонецПериода, ДЕНЬ)) КАК НомераДнейПериода) КАК ДниПериода
;
6 fisher
 
17.04.13
11:15
Запятую лишнюю забыл вырезать. И вложенность можно одну убрать. Просто у меня в этом запросе еще считались стандартные периоды и количество дней в них.
7 Джинн
 
17.04.13
11:15
(5) А календарь не проще?
8 х86
 
17.04.13
11:17
(7)можно и календарь, но не всегда он есть и не всегда заполнен
9 х86
 
17.04.13
11:17
(4)левым соединением к таблице (5) по периоду
10 razbiralshik
 
17.04.13
12:08
Спасибо, помогло!