|
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
|
Спасибо, помогло!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |