|
Помогите с запросом. | ☑ | ||
---|---|---|---|---|
0
Viktosha
19.10.12
✎
13:29
|
Не могу сообразить(видимо сказывается пятница), как сделать выборку с регистра сведений с периодом и к нему левым соеднинием тоже регистр сведений со срезом последних, но дата среза должна быть меньше даты периода первого регистра, т.е. например, цены номенклатуры контрагентов зарегистрированы на даты: 100 рубл на 01.01.2012, 200 рублей на 01.03.2012 и 300 рублей на 01.06.2012 и есть второй регистр цен, они зарегистрированы на 01.01.2012 150 р и на 05.04.2012 220 р
Должно вывестить: 01.01.2012 | 100 р | 150 р 01.03.2012 | 200 р | 150 р 01.06.2012 | 300 р | 220 р Пример запроса, где просто вторая цена вытаскивается самая последняя, а надо на период ВЫБРАТЬ ЦеныНоменклатуры.Номенклатура КАК Номенклатура, ЦеныНоменклатуры.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры, ЦеныНоменклатуры.ТипЦен.Владелец КАК Контрагент, ЦеныНоменклатуры.ТипЦен.ТипЦеныНоменклатуры КАК ТипЦен, КОНЕЦПЕРИОДА(ЦеныНоменклатуры.Период, ДЕНЬ) КАК ПериодЦен, ВЫБОР КОГДА ЦеныНоменклатуры.ЕдиницаИзмерения = &ПустаяЕдиницаИзмерения ТОГДА ЦеныНоменклатуры.Цена * КурсыВалютСрезПоследних.Курс / КурсыВалютСрезПоследних.Кратность / &КурсВалютыОтчета ИНАЧЕ ЦеныНоменклатуры.Цена * КурсыВалютСрезПоследних.Курс / КурсыВалютСрезПоследних.Кратность / ЦеныНоменклатуры.ЕдиницаИзмерения.Коэффициент / &КурсВалютыОтчета КОНЕЦ КАК Цена, ВЫБОР КОГДА ЕСТЬNULL(РублевыеЦеныКомпании.РублеваяЦена, 0) <> 0 ТОГДА ВЫБОР КОГДА ЦеныНоменклатуры.ЕдиницаИзмерения = &ПустаяЕдиницаИзмерения ТОГДА 100 * (-РублевыеЦеныКомпании.РублеваяЦена + ЦеныНоменклатуры.Цена * КурсыВалютСрезПоследних.Курс / КурсыВалютСрезПоследних.Кратность / &КурсВалютыОтчета) / РублевыеЦеныКомпании.РублеваяЦена ИНАЧЕ 100 * (-РублевыеЦеныКомпании.РублеваяЦена + ЦеныНоменклатуры.Цена * КурсыВалютСрезПоследних.Курс / КурсыВалютСрезПоследних.Кратность / &КурсВалютыОтчета / ЦеныНоменклатуры.ЕдиницаИзмерения.Коэффициент) / РублевыеЦеныКомпании.РублеваяЦена КОНЕЦ ИНАЧЕ 0 КОНЕЦ КАК ПроцентОтклоненияОтЦеныКомпании, ЕСТЬNULL(РублевыеЦеныКомпании.РублеваяЦена, 0) КАК РублеваяЦена ИЗ РегистрСведений.ЦеныНоменклатурыКонтрагентов КАК ЦеныНоменклатуры ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних(&ДатаОтчета, ) КАК КурсыВалютСрезПоследних ПО ЦеныНоменклатуры.Валюта = КурсыВалютСрезПоследних.Валюта ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ВЫБОР КОГДА ЦеныКомпании1.ЕдиницаИзмерения = &ПустаяЕдиницаИзмерения ТОГДА ЦеныКомпании1.Цена * КурсыВалютДляЦенКомпании.Курс / КурсыВалютДляЦенКомпании.Кратность / &КурсВалютыОтчета ИНАЧЕ ЦеныКомпании1.Цена / ЦеныКомпании1.ЕдиницаИзмерения.Коэффициент * КурсыВалютДляЦенКомпании.Курс / КурсыВалютДляЦенКомпании.Кратность / &КурсВалютыОтчета КОНЕЦ КАК РублеваяЦена, ЦеныКомпании1.Номенклатура КАК Номенклатура, ЦеныКомпании1.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры, ЦеныКомпании1.ТипЦен КАК ТипЦен, ЦеныКомпании1.ТипЦен.Владелец КАК Контрагент, ЦеныКомпании1.Регистратор КАК Регистратор ИЗ РегистрСведений.ЦеныНоменклатурыКонтрагентов.СрезПоследних(&ДатаОтчета, Регистратор ССЫЛКА Документ.УстановкаЦенНоменклатурыКонтрагентов) КАК ЦеныКомпании1 ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних(&ДатаОтчета, ) КАК КурсыВалютДляЦенКомпании ПО ЦеныКомпании1.Валюта = КурсыВалютДляЦенКомпании.Валюта) КАК РублевыеЦеныКомпании ПО (РублевыеЦеныКомпании.Номенклатура = ЦеныНоменклатуры.Номенклатура) И (РублевыеЦеныКомпании.ХарактеристикаНоменклатуры = ЦеныНоменклатуры.ХарактеристикаНоменклатуры) И ЦеныНоменклатуры.ТипЦен = РублевыеЦеныКомпании.ТипЦен И ЦеныНоменклатуры.ТипЦен.Владелец = РублевыеЦеныКомпании.Контрагент ГДЕ ЦеныНоменклатуры.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг ИТОГИ СРЕДНЕЕ(Цена), СРЕДНЕЕ(ПроцентОтклоненияОтЦеныКомпании), СРЕДНЕЕ(РублеваяЦена) ПО ОБЩИЕ По сути - это анализ цен поставщиков на каждую поставку |
|||
1
Error pro
19.10.12
✎
13:31
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |