|
Минимальная цена с учетом курса
|
|||
---|---|---|---|
#18+
Добрый вечер, господа мастера SQL подскажите как сделать запрос мин цены товара с учетом курса валюты. Есть две таблицы product_price (id, product_id, currency_id, price) и currency (id, rate), пытаюсь сделать следующее: SELECT MIN(product_price.price * (SELECT currency.rate FROM currency WHERE currency.id = product_price.currency_id)) FROM product_price - но получаю лишь умножение на крайнюю запись из currency ? нужно сделать JOIN в этом подзапросе ? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2020, 23:18 |
|
Минимальная цена с учетом курса
|
|||
---|---|---|---|
#18+
Выложите CREATE TABLE обеих таблиц, пример данных (в виде INSERT INTO, 3-5 записей) и требуемый результат для этих данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2020, 23:35 |
|
Минимальная цена с учетом курса
|
|||
---|---|---|---|
#18+
Мне просто неоходимо извлеч минимальное значение цены с учетом курса валют product_price.curency.id => currency.id. В таблице product_price цена может быть как в евро так и в рублях, соот-во мин значение будет некорректное (ибо на выходе всегда должен быть пересчет на рубли и рейт должен быть взят из таблицы currency) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2020, 23:45 |
|
Минимальная цена с учетом курса
|
|||
---|---|---|---|
#18+
Airexe Добрый вечер, господа мастера SQL подскажите как сделать запрос мин цены товара с учетом курса валюты. Есть две таблицы product_price (id, product_id, currency_id, price) и currency (id, rate), пытаюсь сделать следующее: SELECT MIN(product_price.price * (SELECT currency.rate FROM currency WHERE currency.id = product_price.currency_id)) FROM product_price - но получаю лишь умножение на крайнюю запись из currency ? нужно сделать JOIN в этом подзапросе ? Вы приводите 2 таблицы (не смотрел последний zip) - как понимаю "цена продукта" и "валюта". Получить цену в той или иной валюте можно перемножением, но сам вопрос требует переосмысления: Минимальная по отношению к чему нужна цена товара? Варианты: а) найти валюту, в которой цена товара минимальна - то есть нам требуется перемножить цену товара на каждую из валют, сгрупировать по товару и найти миниум. б) найти товар с минимальной ценой в его валюте. В таком случае надо перемножить цену каждого товара на его валюту, и сгруппировав всё, найти минимальный товар и его цену. в) в таблице "цены товаров" представлены несколько записей о товаре с РАЗНОЙ ценой (и возможно валютой). Надо найти запись, с минимальной ценой из кучки с учетом валюты. То есть результат опять же группируем по товару, но уже произведение одной цены на его валюту .. Как видим вопрос группировки - не определен. Итого, что же хочется найти? Огласите весь список пжалста! :) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2020, 01:59 |
|
Минимальная цена с учетом курса
|
|||
---|---|---|---|
#18+
Нужнен вариант б), у каждой цены только одна валюта (к примеру есть три цены (три товара) каждая цена/товар в своей валюте EURO, USD, RUB) нужно получить минимальную цену в пересчете на рубли ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2020, 07:01 |
|
Минимальная цена с учетом курса
|
|||
---|---|---|---|
#18+
Airexe , слушайте... ну вот у Вас проблема... и её надо решить... с Вас просят данные... ну почему надо их делать на "на и отъебись"? Сырой дамп, нечищенный, с кучей нафиг не нужных для задачи полей, и абсолютно без тех сочетаний, которые составляют суть проблемы. Три продукта, и все разные - ну какие С ЭТИМИ ДАННЫМИ могут быть сложности по извлечению цены, если для каждого продукта она - единственная? Вот fiddle с предоставленными данными - откорректируйте до нормального состояния и выложите ссылку. А также выложите в виде отформатированной таблицы требуемый результат для именно представленных в fiddle данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2020, 07:52 |
|
Минимальная цена с учетом курса
|
|||
---|---|---|---|
#18+
Akina, Мне кажется, очередной начинающий студент, что ни разу не представляет что такое "реляция СУБД" .. даже близко. Надо помогать, кмк. А то вот на старости лет дали изучать Go (хуже говна не видел, но ладно, это из иной оперы, промолчу) .. задал на киберфоруме несколько простых (ибо тоже нифига не вьехал поначалу) вопросов - тишина. Спросил что так грустно - попер срач .. выложил свою первую поделку .. да фигу кто даже посмотрел. Может позже .. вышел из темы ибо сам уже разобрался. Я это к чему? (старею видимо) .. к тому, что такой ответ мне там - ни разу не "популязирует язык". Мои непонятки и недовольство как новичка - очевидны.. с этим чудом усиленно общаюсь всего 6-й день.. три примерных программки на разные темки. Освою, куда я денусь! Но .. вот туда спрашивать - точно уже не пойду. Автору: Вариант "б" - самый простой. Джойните обе таблицы по ключам и считайте произведение. Там же в селекте ищите его миниум. Правильно будет явное задание группировки, хотя мускулю она тут и не нужна. Но лучше привыкать к хорошему. Собственно это всё. Как сделаете - публикуйте. А вот делать за Вас - увольте. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2020, 08:32 |
|
Минимальная цена с учетом курса
|
|||
---|---|---|---|
#18+
. дубль ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2020, 08:34 |
|
Минимальная цена с учетом курса
|
|||
---|---|---|---|
#18+
Akina, Извеняюсь я только учусь, и не всегда понимаю как правильно вопрос поставить, не взыщите ). Отредактировал fiddle https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=cfd525c412b8c974887b1f5a6ac4ffbf Для точности добавил три одинаковые цены, но в разной валюте (повторюсь нужен MIN в пересчете на rate из таблицы currency) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2020, 08:45 |
|
Минимальная цена с учетом курса
|
|||
---|---|---|---|
#18+
Arhat109 Akina, Мне кажется, очередной начинающий студент, что ни разу не представляет что такое "реляция СУБД" .. даже близко. Надо помогать, кмк. А то вот на старости лет дали изучать Go (хуже говна не видел, но ладно, это из иной оперы, промолчу) .. задал на киберфоруме несколько простых (ибо тоже нифига не вьехал поначалу) вопросов - тишина. Спросил что так грустно - попер срач .. выложил свою первую поделку .. да фигу кто даже посмотрел. Может позже .. вышел из темы ибо сам уже разобрался. Я это к чему? (старею видимо) .. к тому, что такой ответ мне там - ни разу не "популязирует язык". Мои непонятки и недовольство как новичка - очевидны.. с этим чудом усиленно общаюсь всего 6-й день.. три примерных программки на разные темки. Освою, куда я денусь! Но .. вот туда спрашивать - точно уже не пойду. Автору: Вариант "б" - самый простой. Джойните обе таблицы по ключам и считайте произведение. Там же в селекте ищите его миниум. Правильно будет явное задание группировки, хотя мускулю она тут и не нужна. Но лучше привыкать к хорошему. Собственно это всё. Как сделаете - публикуйте. А вот делать за Вас - увольте. :) Так и не нужно чтобы вы за меня делали саму задачу, мне не понятна концепция MIN, MAX и ее работа с подзапросом, если знаете разъяните, иначе какой смысл был просто комментировать неправильно поставленный вопрос. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2020, 08:55 |
|
Минимальная цена с учетом курса
|
|||
---|---|---|---|
#18+
Airexe, Код: sql 1. 2. 3. 4.
В таком виде, как понимаю, ваш запрос тоже должен работать, т.к. он преобразуется к джойн варианту. Можете проверить в том же fiddle. Спрашивал, поскольку было не понятно что Вы хотите получить на самом деле. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2020, 09:50 |
|
Минимальная цена с учетом курса
|
|||
---|---|---|---|
#18+
Arhat109 Airexe, Код: sql 1. 2. 3. 4.
В таком виде, как понимаю, ваш запрос тоже должен работать, т.к. он преобразуется к джойн варианту. Можете проверить в том же fiddle. Спрашивал, поскольку было не понятно что Вы хотите получить на самом деле. Вы правы, в fiddle запрос действительно работает, но у себя я получаю все же неверный результат (вероятно это из типа данных bigint возврщается только числа не менее 100), попробую разобраться, за правильное решение и наводку благодарствую много ! ) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2020, 10:23 |
|
Минимальная цена с учетом курса
|
|||
---|---|---|---|
#18+
Airexe Для точности добавил три одинаковые цены, но в разной валюте (повторюсь нужен MIN в пересчете на rate из таблицы currency) Код: sql 1. 2. 3. 4.
fiddle ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2020, 10:30 |
|
Минимальная цена с учетом курса
|
|||
---|---|---|---|
#18+
Akina, Поэтому и пытался приводить примеры про товары без детального sql ), но в общем все довольно просто, в каталоге есть товары от разных производителей, в разных исходных валютах (валютах поставщика), конечному пользователю они показываются в рублях, и нужно вывести мин и макс значения цены с учетом конвертации (для фильтра по цене). ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2020, 10:38 |
|
Минимальная цена с учетом курса
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
fiddle Это - минимальные. Для вывода максимальных добавьте ещё один ROW_NUMBER(), с обратной сортировкой. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2020, 11:17 |
|
|
start [/forum/topic.php?fid=47&msg=40023275&tid=1828290]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
42ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 155ms |
0 / 0 |