Получение в запросе всех периодов из указанного интервала...

1. a3a 15 07.11.14 08:42 Сейчас в теме
туплю, ребята подскажите
такой вопрос, вытаскиваю данные из регистра оборотного "ПродажиОбороты" допустим за 14 годс периодичностю "месяц". данные выходят правильно по текущий месяц, вобще возможно ли что бы в данные включались и ноябрь и декабрь но с количеством продажи 0? может кто делал, какие есть пути обхода? заранее благодарю. можно даже примерчик или ссылку скинуть.
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. miniogn 23 07.11.14 08:44 Сейчас в теме
(1) В СКД для этого как-то используются дополнения. Если надо только в запросе, то соединяй с искусственной таблицей с месяцами.
3. a3a 15 07.11.14 08:47 Сейчас в теме
(2) miniogn, именно в запросе. но мне надо в разрезе номенклатуры, вместо нее выходит NULL, есть реальный пример?
4. SPID 07.11.14 09:11 Сейчас в теме
Как вариант сформировать сначала таблицу нужных периодов, а затем присоединить к ней уже таблицу с данными. Например так:
ВЫБРАТЬ
	0 КАК Число
ПОМЕСТИТЬ Цифры

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	1

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	2

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	3

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	4

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	5

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	6

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	7

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	8

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	9
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	Цифры1.Число + Цифры2.Число * 10 КАК Число
ПОМЕСТИТЬ Числа
ИЗ
	Цифры КАК Цифры1,
	Цифры КАК Цифры2
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
      ДОБАВИТЬКДАТЕ(&ДатаНачалаПериода, МЕСЯЦ, Числа.Число) КАК Период
ПОМЕСТИТЬ Периоды    
ИЗ Числа КАК Числа
ГДЕ ДОБАВИТЬКДАТЕ(&ДатаНачалаПериода, МЕСЯЦ, Числа.Число) <= &ДатаОкончанияПериода
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
     Периоды.Период КАК Период,
     ....// данные из регистра
ИЗ Периоды КАК Периоды
ЛЕВОЕ СОЕДИНЕНИЕ Регистр КАК Регистр
ПО Периоды.Период = Регистр.Период
Показать


Последнее условие соединения можно скорректировать зависимость от задачи и может выглядеть, например, следующим образом
ПО Регистр.Период >= НАЧАЛОПЕРИОДА(Периоды.Период. МЕСЯЦ) И Регистр.Период <= КОНЕЦПЕРИОДА(Периоды.Период. МЕСЯЦ)


Так же, если требуется больше дат, то в запросе Числа можено сделать три и более соединений
Цифры1.Число + Цифры2.Число * 10 + Цифры3.Число * 100
5. a3a 15 07.11.14 10:56 Сейчас в теме
что я не так делаю, не получается
NULL выходит.


на фото видно что до октября нормально выводит, а ноябрь и декабрь по которым еше нет движений NULL
6. SPID 07.11.14 11:59 Сейчас в теме
Из картинки не видно весь запрос.
Если вы присоединяете данные РН левым соединением по периоду и в РН нет данных, то тут все верно - будет NULL.
7. Anton64 216 07.11.14 13:17 Сейчас в теме
Можно попробовать так:
1 временная таблица - с периодами;
2 временная таблица - аналитика из регистра (т.е. группировка по Номенклатуре и т.д.)

Соединить 1 с 2 и с левым соединением ПродажиОбороты и в значениях показателей дописать проверку на ЕСТЬNULL.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот