Добрый день. Я не волшебник, я только учусь.
Из двух регистров Остатки товаров и Продажи нужно получить выборку данных, соединив их
Номенклатура КоличествоОстаток КоличествоОборот ВычисляемоеПоле
Но мне это нужно сделать для нескольких периодов (текущий месяц, предыдущий месяц, и т.д.). Я сделал для одного периода. Как прицепить остальные?
ВЫБРАТЬ
ТоварыНаСкладахОстатки.Номенклатура,
ТоварыНаСкладахОстатки.КоличествоОстаток
ПОМЕСТИТЬ Остатки
ИЗ
РегистрНакопления.ТоварыНаСкладах.Остатки(&КонДата, ) КАК ТоварыНаСкладахОстатки
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ПродажиОбороты.Номенклатура,
ПродажиОбороты.КоличествоОборот
ПОМЕСТИТЬ Обороты
ИЗ
РегистрНакопления.Продажи.Обороты(&НачДата, &КонДата, Месяц, ) КАК ПродажиОбороты
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Остатки.Номенклатура,
Остатки.КоличествоОстаток,
ВЫБОР
КОГДА Обороты.КоличествоОборот ЕСТЬ NULL
ТОГДА 0
ИНАЧЕ Обороты.КоличествоОборот
КОНЕЦ КАК Оборот,
ВЫБОР
КОГДА ВЫБОР
КОГДА Обороты.КоличествоОборот ЕСТЬ NULL
ТОГДА 0
ИНАЧЕ Обороты.КоличествоОборот
КОНЕЦ > 0
ТОГДА Остатки.КоличествоОстаток / ВЫБОР
КОГДА Обороты.КоличествоОборот ЕСТЬ NULL
ТОГДА 0
ИНАЧЕ Обороты.КоличествоОборот
КОНЕЦ
ИНАЧЕ 0
КОНЕЦ КАК Поле1
ПОМЕСТИТЬ ОстаткиОбороты
ИЗ
Остатки КАК Остатки
ЛЕВОЕ СОЕДИНЕНИЕ Обороты КАК Обороты
ПО Остатки.Номенклатура = Обороты.Номенклатура
вот здесь
ТОГДА Остатки.КоличествоОстаток / ВЫБОР
КОГДА Обороты.КоличествоОборот ЕСТЬ NULL
ТОГДА 0
ИНАЧЕ Обороты.КоличествоОборот
КОНЕЦ
на ж0пу нарываешься
период для всех запросов - один, который содержит предыдущий и тек месяц
в запросе - выбор когда период = предмесяц тогда количество как оборотпредмесяц
и т.п.
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший