@ta4

Возможно ли на чистом SQL сделать такой отчет?

Есть такая задача:
cbd6ac46e4b8484c940feb8b78340330.png

Решили ее так в MySQL:
SELECT item_id, price * IFNULL(rate, 1) as price_in_byr 
FROM items
LEFT JOIN (SELECT * FROM (SELECT * FROM `rates` ORDER BY date DESC) r group by currency) rmax
ON items.currency = rmax.currency


Но по заданию нельзя использовать особенности MySQL, должен быть чистый SQL
  • Вопрос задан
  • 261 просмотр
Пригласить эксперта
Ответы на вопрос 2
@vshvydky
SELECT i.item_id as item_id, (i.price * r.rate) as price_in_byr 
  FROM items i, rates r
  WHERE r.date = max(r.date) AND i.curency = r.curency
ну и если интересует конкретный итем AND i.item_id = 1

up не увидел curency
Ответ написан
@nozzy
Symfony, Laravel, SQL
Куда то пропала подсветка синтаксиса.
Как-то так:

select
t1.item_id,
t1.price,
t1.currency,
t2.rate
from items t1
left join (
select
t3.rate,
t4.currency,
t4.date
from rates t3
inner join (
select
currency,
max(date)
from rates
group by currency) t4
on t4.currency = t3.currency
and t4.date = t3.date) t2
on t1.currency = t2.currency
where t1.item_id = 5
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы