|
Агрегатная функция в запросе по произведению | ☑ | ||
---|---|---|---|---|
0
roofus
03.06.14
✎
20:03
|
Собственно задача состоит в том, что нужно выбрать максимальные цены по номенклатуре с приведением их к единой валюте. Т.к. храняться они и в рублях и в у.е.
А в результате выдать цену и валюту в которой она храниться. Этот результат дальше будет присоединяться к другом запросе к другим данным. Вот запрос ткните носом что не так ВЫБРАТЬ НовыеЦены.Номенклатура, НовыеЦены.ЦенаРуб, НовыеЦены.Цена, НовыеЦены.Валюта ИЗ (ВЫБРАТЬ НовыеЦены.Номенклатура КАК Номенклатура, МАКСИМУМ(НовыеЦены.Цена * Курсы.Курс) КАК ЦенаРуб, НовыеЦены.Цена КАК Цена, НовыеЦены.Валюта КАК Валюта ИЗ РегистрСведений.мегапрайсЦеныНоменклатурыПоставщик ов.СрезПоследних КАК НовыеЦены ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних КАК Курсы ПО НовыеЦены.Валюта = Курсы.Валюта ГДЕ НовыеЦены.Номенклатура В ИЕРАРХИИ(&Номенклатура) СГРУППИРОВАТЬ ПО НовыеЦены.Номенклатура, НовыеЦены.Цена, НовыеЦены.Валюта) КАК НовыеЦены СГРУППИРОВАТЬ ПО НовыеЦены.Номенклатура, НовыеЦены.ЦенаРуб, НовыеЦены.Цена, НовыеЦены.Валюта |
|||
1
Fragster
гуру
03.06.14
✎
20:09
|
нужно сначала получить максимум независимо от валюты, а потом к этому значению прилепить валюту.
|
|||
2
Fragster
гуру
03.06.14
✎
20:10
|
для особых извращенцев - можно фигануть через коррелированный запрос :)
|
|||
3
roofus
03.06.14
✎
20:11
|
не понял?
Это как? |
|||
4
roofus
03.06.14
✎
20:12
|
мне нужен максимум как раз от произведения. Просто без валюты естественно попадут только рублевые варианты
|
|||
5
ilya_i
03.06.14
✎
20:35
|
и что выдает (0) ?
|
|||
6
rendez-vous
03.06.14
✎
20:38
|
(0) Группировку по по полю НовыеЦены.Цена нужно убрать.
|
|||
7
ilya_i
03.06.14
✎
20:44
|
Получить запрос где будет Номенклатура, ЦенаРуб, Валюта, запомнить, получить макс цены, соединить с запомненным, получить валюту
|
|||
8
Fragster
гуру
03.06.14
✎
20:51
|
(4) у тебя получается максимум и в разрезе валюты тоже. тебе нужно получить рублевый максимум, а потом к нему подцепить валюту.
|
|||
9
roofus
04.06.14
✎
03:45
|
(8) Не понял как получить рублевый максимум без валюты? Мне нужно не последнюю цену получить , а именно максимальную в рублях. т.е. для примера курс сегодня 35р
товар цена валюта ведро 10 доллар ведро 300 рублей Сейчас мне запрос выдает 300 р максимум а мне нужно чтобы результатом было 10 долларов. потому как если сравнить в рублях, то 10 дол бует больше. я вот подумал, что может быть создавать таблицу с ценой и ценой в руб, потом сортировать и оборачивать в запрос выбрать первые 1? |
|||
10
Ненавижу 1С
гуру
04.06.14
✎
06:50
|
(9)
ведро 10 доллар (курс 35) ведро 70 юаней (курс 5) какую строку запрос должен вернуть? |
|||
11
Fragster
гуру
04.06.14
✎
07:52
|
(9) твайу мать! третий раз! получи таблицу с максимумом рублевой цены для каждой номенклатуры. к ней присоедини исходную таблицу по номенклатуре и рублевой цене. для верности результирующую таблицу сгруппируй по цене и номенклатуре и максимуму по валюте, на случай, если в нескольких валютах максимальная цена.
|
|||
12
ILM
гуру
04.06.14
✎
07:55
|
(11) [ твайу мать! третий раз! получи таблицу с максимумом рублевой цены для каждой номенклатуры. к ней присоедини исходную таблицу по номенклатуре и рублевой цене. для верности результирующую таблицу сгруппируй по цене и номенклатуре и максимуму по валюте, на случай, если в нескольких валютах максимальная цена.]
Выглядит как ответ синтаксис-чеккера от SQL Servera ))) |
|||
13
Fragster
гуру
04.06.14
✎
08:33
|
(12) шо, автор хочет готовый запрос? не дождется!
|
|||
14
roofus
04.06.14
✎
13:32
|
Вот что в итоге получилось
Выдает вроде то, что нужно. Просто как-то коряво написал :( ВЫБРАТЬ МаксЦеныРуб.Номенклатура КАК Номенклатура, МаксЦеныРуб.Поле1, ИсхТабл.Цена, ИсхТабл.Валюта ИЗ (ВЫБРАТЬ Цены.Номенклатура КАК Номенклатура, МАКСИМУМ(Курсы.Курс * Цены.Цена) КАК Поле1 ИЗ РегистрСведений.мегапрайсЦеныНоменклатурыПоставщиков.СрезПоследних(, ) КАК Цены ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних КАК Курсы ПО Цены.Валюта = Курсы.Валюта ГДЕ Цены.Номенклатура В ИЕРАРХИИ(&Номенклатура) И Цены.ПрайсПартнера.Партнер В ИЕРАРХИИ(&Партнер) И Цены.Регистратор.Дата >= &НачПериод СГРУППИРОВАТЬ ПО Цены.Номенклатура) КАК МаксЦеныРуб ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ мегапрайсЦеныНоменклатурыПоставщиковСрезПоследних.Номенклатура КАК Номенклатура, мегапрайсЦеныНоменклатурыПоставщиковСрезПоследних.Цена * КурсыВалютСрезПоследних.Курс КАК Поле1, мегапрайсЦеныНоменклатурыПоставщиковСрезПоследних.Цена КАК Цена, мегапрайсЦеныНоменклатурыПоставщиковСрезПоследних.Валюта КАК Валюта ИЗ РегистрСведений.мегапрайсЦеныНоменклатурыПоставщиков.СрезПоследних КАК мегапрайсЦеныНоменклатурыПоставщиковСрезПоследних ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних КАК КурсыВалютСрезПоследних ПО мегапрайсЦеныНоменклатурыПоставщиковСрезПоследних.Валюта = КурсыВалютСрезПоследних.Валюта ГДЕ мегапрайсЦеныНоменклатурыПоставщиковСрезПоследних.Номенклатура В ИЕРАРХИИ(&Номенклатура) И мегапрайсЦеныНоменклатурыПоставщиковСрезПоследних.ПрайсПартнера.Партнер В ИЕРАРХИИ(&Партнер) И мегапрайсЦеныНоменклатурыПоставщиковСрезПоследних.Регистратор.Дата >= &НачПериод) КАК ИсхТабл ПО МаксЦеныРуб.Номенклатура = ИсхТабл.Номенклатура И МаксЦеныРуб.Поле1 = ИсхТабл.Поле1 УПОРЯДОЧИТЬ ПО Номенклатура |
|||
15
Fragster
гуру
04.06.14
✎
14:24
|
(14) теперь можно избавиться от множественного обращения к одним и тем же данным через использование временных таблиц - и будет норм.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |