|
Срез последних на дату регистратора в запросе | ☑ | ||
---|---|---|---|---|
0
luckymarina
13.08.11
✎
14:27
|
нужно вывести движения товаров по еще одному показателю СтоимостьПрод, который рассчитывается как СтоимостьОборот*Курс (на дату регистратора, что хранится в регистре сведений)
Если так написать, то СтоимостьПрод вообще не выдается (урывок кода) |(ВЫБРАТЬ |ПродажиОбороты.Мк КАК Мк, |ПродажиОбороты.Номенклатура КАК Номенклатура, |ПродажиОбороты.Регистратор КАК Регистратор, |ПродажиОбороты.Период КАК Период, |ПродажиОбороты.СтоимостьОборот*ТаблицаРегистраПродажи.Курс/100 КАК СтоимостьПрод, |ПродажиОбороты.СтоимостьОборот КАК Стоимость |ИЗ | РегистрНакопления.ПродажиТТ.Обороты(&ДатаНач, &ДатаКон, Регистратор, { Мк.* КАК Мк, Номенклатура.* КАК Номенклатура}) КАК ПродажиОбороты |ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ |МАКСИМУМ(КурсыМк.Курс) КАК Курс, |МАКСИМУМ(КурсыМк.Период) КАК Период, |КурсыМк.Мк КАК Мк |ИЗ |РегистрСведений.КурсыМк КАК КурсыМк |ГДЕ | КурсыМк.Период МЕЖДУ &ДатаНачала И &ДатаКонца | {ГДЕ | КурсыМк.Курс.* КАК Курс, | КурсыМк.Мк.* КАК Мк} | СГРУППИРОВАТЬ ПО | КурсыМк.Мк) КАК ТаблицаРегистраПродажи |ПО ТаблицаРегистраПродажи.Мк = ПродажиОбороты.Мк |И ТаблицаРегистраПродажи.Период = ПродажиОбороты.период ) КАК ВложенныйЗапрос если так, то курс берется последний, а не на дату |(ВЫБРАТЬ |ПродажиОбороты.Мк КАК Мк, |ПродажиОбороты.Номенклатура КАК Номенклатура, |ПродажиОбороты.Регистратор КАК Регистратор, |ПродажиОбороты.Период КАК Период, |ПродажиОбороты.СтоимостьОборот*ТаблицаРегистраПродажи.Курс/100 КАК СтоимостьПрод, |ПродажиОбороты.СтоимостьОборот КАК Стоимость |ИЗ | РегистрНакопления.ПродажиТТ.Обороты(&ДатаНач, &ДатаКон, Регистратор, { Мк.* КАК Мк, Номенклатура.* КАК Номенклатура}) КАК ПродажиОбороты |ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ |МАКСИМУМ(КурсыМк.Курс) КАК Курс, |КурсыМк.Мк КАК Мк |ИЗ |РегистрСведений.КурсыМк КАК КурсыМк |ГДЕ | КурсыМк.Период МЕЖДУ &ДатаНачала И &ДатаКонца | {ГДЕ | КурсыМк.Курс.* КАК Курс, | КурсыМк.Мк.* КАК Мк} | СГРУППИРОВАТЬ ПО | КурсыМк.Мк) КАК ТаблицаРегистраПродажи |ПО ТаблицаРегистраПродажи.Мк = ПродажиОбороты.Мк) КАК ВложенныйЗапрос Смотрела здесь Книга знаний: Срез последних на каждую дату в запросе, но никак не могу под себя сформировать. Помогите разобраться! |
|||
1
luckymarina
13.08.11
✎
14:29
|
за основу отчета брала отчет ВаловаяПрибыль (Управление торговлей для Украины)
|
|||
2
Шурик71
13.08.11
✎
14:39
|
Мне долго объяснять некогда, но попробую передать смысл.
Есть регистраторы, у них есть дата. Итого имеем таблицу с датами регистраторов. Есть таблица записей рег.св. курсов. Каждый курс НАЧИНАЕТ действовать с даты указанной в этой таблице даты, и действует все следующие даты, пока не будет новой записи в регистре. Значит, к регистраторам сначала надо присоединять таблицу рег. сведений, находя максимальную ДАТУ (а не курс!), не большую даты регистратора. А вот найдя эту самую макс. дату - можно еще раз присоединять рег. сведений по этой макс. дате и получать нужный курс. Все, дальше сама. |
|||
3
luckymarina
13.08.11
✎
16:20
|
Спасибо, получилось!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |