0
- 21.05.2014 - 13:32
|
Всем привет! Подскажите, плиз, есть ли вариант в запросе вытащить МАКСИМУМ по ценам из регистра сведений приведя их к единой валюте? База УТ 10.3. | |
1
- 21.05.2014 - 13:45
| Не вижу препятствий. Что не получается-то? | |
2
- 21.05.2014 - 13:50
| афтар не договаривает максимум чего - по номенклактуре и/или типу цен, дате ? | |
3
- 23.05.2014 - 17:56
|
В запросе есть валюта (ссылка) Нужно в запросе сначала взять произведение курса валюты и цены, а потом взять максимум. Как лучше это сделать? | |
4
- 23.05.2014 - 19:24
| Я бы делал пакетным запросом... | |
5
- 23.05.2014 - 21:07
| Нужно просто взять яйца в кулак и сделать работу. | |
6
- 03.06.2014 - 18:56
|
Еще раз добрый день! Так задачу и недомучал :( Вот запрос ткните носом что не так ВЫБРАТЬ НовыеЦены.Номенклатура, НовыеЦены.ЦенаРуб, НовыеЦены.Цена, НовыеЦены.Валюта ИЗ (ВЫБРАТЬ НовыеЦены.Номенклатура КАК Номенклатура, МАКСИМУМ(НовыеЦены.Цена * Курсы.Курс) КАК ЦенаРуб, НовыеЦены.Цена КАК Цена, НовыеЦены.Валюта КАК Валюта ИЗ РегистрСведений.мегапрайсЦеныНоменклатурыПоставщик ов.СрезПоследних КАК НовыеЦены ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних КАК Курсы ПО НовыеЦены.Валюта = Курсы.Валюта ГДЕ НовыеЦены.Номенклатура В ИЕРАРХИИ(&Номенклатура) СГРУППИРОВАТЬ ПО НовыеЦены.Номенклатура, НовыеЦены.Цена, НовыеЦены.Валюта) КАК НовыеЦены СГРУППИРОВАТЬ ПО НовыеЦены.Номенклатура, НовыеЦены.ЦенаРуб, НовыеЦены.Цена, НовыеЦены.Валюта | |
7
- 03.06.2014 - 18:59
|
Собственно задача состоит в том, что нужно выбрать максимальные цены по номенклатуре с приведением их к единой валюте. Т.к. храняться они и в рублях и в у.е. А в результате выдать цену и валюту в которой она храниться. Этот результат дальше будет присоединяться к другом запросе к другим данным. | |
8
- 03.06.2014 - 21:21
|
* Вложенный запрос - сразу в топку. Запрос должен быть пакетным. * Схема запроса: 1. Выбрать в отдельную таблицу список номенклатуры, которая интересует пользователя. Именно здесь наложить все фильтры. 2. Выбрать данные о ценах из виртуальной таблицы "срез последних" регистра "ЦеныНоменклатуры" с использованием параметров виртуальной таблицы для отбора цен по номенклатуре из п.1. 3. Соединить результат п.2 с реальной таблицей регистра "КурсыВалют" по полю период с условием "Цена.Период > КурсыВалют.Период И Цена.Валюта = КурсыВалют.Валюта". К полю "КурсыВалют.Период" применить агрегатную функцию "Максимум". В результате получится таблица, аналогичная п.2, но с дополнительной колонкой, в которой будет содержаться дата курса валюты, действительного для каждой цены. 4. Результат п.3 снова соединяем с реальной таблицей курсов валют по дате курса валюты и самой валюте. В результате должна получиться таблица с данными как о ценах, так и о курсах, действительных для этих цен. Здесь уже можно сделать пересчет в нужную валюту. Только не забудьте хотя бы про кратность валюты. | |
9
- 04.06.2014 - 02:32
|
Наверное невнятно поставил задачу. Еще раз что нужно: Есть куча прайсов от поставщиков, они обновляются почти каждый день. Храняться в регистре сведений РегистрСведений.мегапрайсЦеныНоменклатурыПоставщик ов. Нужно на текущий момент времени: 1. Создать таблицу с ценами по списку номенклатуры. 2. Привести их к единой валюте по курсу на текущий момент. Т.е. получить цену в рублях. Если цена уже в рублях. Она таковой и остается. 3. Выбрать максимальную цену в разрезе номенклатуры. 4. Из получившегося результата вывести таблицу с полями Номенклатура, Цена (само значение в регистре), валюта в которой хранится цена. Вот собственно и все. В принципе, конечно, нужно еще наложить условия по поставщикам (фильтр) и по периоду цен, но это уже дальше. Сейчас результат запроса выдает максимум по двум разрезам сразу и по цене и по цене в рублях. Как получить максимальную цену в рублях а в таблицу вставить в валюте? вот в чем вопрос. | |
10
- 04.06.2014 - 08:19
|
9-roofus_leo > 1) получить исходную таблицу в виде Номенклатура-Валюта-Цена - ЦенаRUR. Положить во временную 2) сгруппировать Max(ЦенаRUR)по Номенклатуре 3) К полученной сагрегированной слева прицепить сохранённую в 1) по Номенклатура и ЦенаRUR | |
11
- 04.06.2014 - 12:38
|
Вот что в итоге получилось Выдает вроде то, что нужно. Просто как-то коряво написал :( + Code ВЫБРАТЬ МаксЦеныРуб.Номенклатура КАК Номенклатура, МаксЦеныРуб.Поле1, ИсхТабл.Цена, ИсхТабл.Валюта ИЗ (ВЫБРАТЬ Цены.Номенклатура КАК Номенклатура, МАКСИМУМ(Курсы.Курс * Цены.Цена) КАК Поле1 ИЗ РегистрСведений.мегапрайсЦеныНоменклатурыПоставщик ов.СрезПоследних(, ) КАК Цены ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних КАК Курсы ПО Цены.Валюта = Курсы.Валюта ГДЕ Цены.Номенклатура В ИЕРАРХИИ(&Номенклатура) И Цены.ПрайсПартнера.Партнер В ИЕРАРХИИ(&Партнер) И Цены.Регистратор.Дата >= &НачПериод СГРУППИРОВАТЬ ПО Цены.Номенклатура) КАК МаксЦеныРуб ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ мегапрайсЦеныНоменклатурыПоставщиковСрезПоследних. Номенклатура КАК Номенклатура, мегапрайсЦеныНоменклатурыПоставщиковСрезПоследних. Цена * КурсыВалютСрезПоследних.Курс КАК Поле1, мегапрайсЦеныНоменклатурыПоставщиковСрезПоследних. Цена КАК Цена, мегапрайсЦеныНоменклатурыПоставщиковСрезПоследних. Валюта КАК Валюта ИЗ РегистрСведений.мегапрайсЦеныНоменклатурыПоставщик ов.СрезПоследних КАК мегапрайсЦеныНоменклатурыПоставщиковСрезПоследних ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних КАК КурсыВалютСрезПоследних ПО мегапрайсЦеныНоменклатурыПоставщиковСрезПоследних. Валюта = КурсыВалютСрезПоследних.Валюта ГДЕ мегапрайсЦеныНоменклатурыПоставщиковСрезПоследних. Номенклатура В ИЕРАРХИИ(&Номенклатура) И мегапрайсЦеныНоменклатурыПоставщиковСрезПоследних. ПрайсПартнера.Партнер В ИЕРАРХИИ(&Партнер) И мегапрайсЦеныНоменклатурыПоставщиковСрезПоследних. Регистратор.Дата >= &НачПериод) КАК ИсхТабл ПО МаксЦеныРуб.Номенклатура = ИсхТабл.Номенклатура И МаксЦеныРуб.Поле1 = ИсхТабл.Поле1 УПОРЯДОЧИТЬ ПО Номенклатура | |
| Интернет-форум Краснодарского края и Краснодара |