Vofka @ 28.05.20, 17:19
,
В общем нужно было мне получить три последние документа реализации, у которых был возврат. За возврат расписывать не буду, а вот как получал три последние документа реализации по номенклатуре напишу:
ВЫБРАТЬ
Продажи.Номенклатура КАК Номенклатура
ПОМЕСТИТЬ НоменклатураВозвратов
ИЗ
РегистрНакопления.Продажи КАК Продажи
ГДЕ
Продажи.Регистратор ССЫЛКА Документ.ВозвратТоваровОтПокупателя
И НАЧАЛОПЕРИОДА(Продажи.Период, ДЕНЬ) = &ДатаВозврата
СГРУППИРОВАТЬ ПО
Продажи.Номенклатура
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Продажи.Период КАК ДатаРеализации,
Продажи.Номенклатура КАК Номенклатура,
Продажи.Регистратор КАК Реализация
ПОМЕСТИТЬ РеализацииНоменклатуыВозвратов
ИЗ
НоменклатураВозвратов КАК НоменклатураВозвратов
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи КАК Продажи
ПО НоменклатураВозвратов.Номенклатура = Продажи.Номенклатура
ГДЕ
Продажи.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг
И НАЧАЛОПЕРИОДА(Продажи.Период, ДЕНЬ) <= &ДатаВозврата
СГРУППИРОВАТЬ ПО
Продажи.Номенклатура,
Продажи.Период,
Продажи.Регистратор
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
МАКСИМУМ(РеализацииНоменклатуыВозвратов.ДатаРеализации) КАК ДатаРеализации,
РеализацииНоменклатуыВозвратов.Номенклатура КАК Номенклатура
ПОМЕСТИТЬ ПервоеСостояние
ИЗ
РеализацииНоменклатуыВозвратов КАК РеализацииНоменклатуыВозвратов
СГРУППИРОВАТЬ ПО
РеализацииНоменклатуыВозвратов.Номенклатура
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
МАКСИМУМ(РеализацииНоменклатуыВозвратов.ДатаРеализации) КАК ДатаРеализации,
РеализацииНоменклатуыВозвратов.Номенклатура КАК Номенклатура
ПОМЕСТИТЬ ВтороеСостояние
ИЗ
РеализацииНоменклатуыВозвратов КАК РеализацииНоменклатуыВозвратов
ЛЕВОЕ СОЕДИНЕНИЕ ПервоеСостояние КАК ПервоеСостояние
ПО РеализацииНоменклатуыВозвратов.Номенклатура = ПервоеСостояние.Номенклатура
И РеализацииНоменклатуыВозвратов.ДатаРеализации = ПервоеСостояние.ДатаРеализации
ГДЕ
ПервоеСостояние.Номенклатура ЕСТЬ NULL
СГРУППИРОВАТЬ ПО
РеализацииНоменклатуыВозвратов.Номенклатура
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
МАКСИМУМ(РеализацииНоменклатуыВозвратов.ДатаРеализации) КАК ДатаРеализации,
РеализацииНоменклатуыВозвратов.Номенклатура КАК Номенклатура
ПОМЕСТИТЬ ТретьеСостояние
ИЗ
РеализацииНоменклатуыВозвратов КАК РеализацииНоменклатуыВозвратов
ЛЕВОЕ СОЕДИНЕНИЕ ПервоеСостояние КАК ПервоеСостояние
ПО РеализацииНоменклатуыВозвратов.Номенклатура = ПервоеСостояние.Номенклатура
И РеализацииНоменклатуыВозвратов.ДатаРеализации = ПервоеСостояние.ДатаРеализации
ЛЕВОЕ СОЕДИНЕНИЕ ВтороеСостояние КАК ВтороеСостояние
ПО РеализацииНоменклатуыВозвратов.Номенклатура = ВтороеСостояние.Номенклатура
И РеализацииНоменклатуыВозвратов.ДатаРеализации = ВтороеСостояние.ДатаРеализации
ГДЕ
ВтороеСостояние.Номенклатура ЕСТЬ NULL
И ПервоеСостояние.Номенклатура ЕСТЬ NULL
СГРУППИРОВАТЬ ПО
РеализацииНоменклатуыВозвратов.Номенклатура
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ПервоеСостояние.Номенклатура КАК Номенклатура,
РеализацииНоменклатуыВозвратов.Реализация КАК Реализация
ИЗ
ПервоеСостояние КАК ПервоеСостояние
ЛЕВОЕ СОЕДИНЕНИЕ РеализацииНоменклатуыВозвратов КАК РеализацииНоменклатуыВозвратов
ПО ПервоеСостояние.Номенклатура = РеализацииНоменклатуыВозвратов.Номенклатура
И ПервоеСостояние.ДатаРеализации = РеализацииНоменклатуыВозвратов.ДатаРеализации
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
ВтороеСостояние.Номенклатура,
РеализацииНоменклатуыВозвратов.Реализация
ИЗ
ВтороеСостояние КАК ВтороеСостояние
ЛЕВОЕ СОЕДИНЕНИЕ РеализацииНоменклатуыВозвратов КАК РеализацииНоменклатуыВозвратов
ПО ВтороеСостояние.Номенклатура = РеализацииНоменклатуыВозвратов.Номенклатура
И ВтороеСостояние.ДатаРеализации = РеализацииНоменклатуыВозвратов.ДатаРеализации
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
ТретьеСостояние.Номенклатура,
РеализацииНоменклатуыВозвратов.Реализация
ИЗ
ТретьеСостояние КАК ТретьеСостояние
ЛЕВОЕ СОЕДИНЕНИЕ РеализацииНоменклатуыВозвратов КАК РеализацииНоменклатуыВозвратов
ПО ТретьеСостояние.Номенклатура = РеализацииНоменклатуыВозвратов.Номенклатура
И ТретьеСостояние.ДатаРеализации = РеализацииНоменклатуыВозвратов.ДатаРеализации
УПОРЯДОЧИТЬ ПО
Реализация УБЫВ,
Номенклатура
ИТОГИ
КОЛИЧЕСТВО(Реализация)
ПО
Номенклатура
АВТОУПОРЯДОЧИВАНИЕ