Як вибрати останню ціну по складу? Можна двома способами
1. SELECT id, id_product, data, price FROM r a WHERE data = (SELECT max(data) FROM r b WHERE
b.id = a.id AND b.id_product = a.id_product)
або
SELECT id, id_product, data, price FROM r a WHERE data in (SELECT max(data) FROM r b WHERE
b.id = a.id AND b.id_product = a.id_product)
2. SELECT DISTINCT ON (id, id_product) id, id_product, data, price FROM r
ORDER BY id, id_product, data DESC
Цікаво як це реалізувати на Oracle? Перший варіант напевно універсальний для любої бази даних, треба перевірити чи другий варіант працює на Oracle.
1. SELECT id, id_product, data, price FROM r a WHERE data = (SELECT max(data) FROM r b WHERE
b.id = a.id AND b.id_product = a.id_product)
або
SELECT id, id_product, data, price FROM r a WHERE data in (SELECT max(data) FROM r b WHERE
b.id = a.id AND b.id_product = a.id_product)
2. SELECT DISTINCT ON (id, id_product) id, id_product, data, price FROM r
ORDER BY id, id_product, data DESC
Цікаво як це реалізувати на Oracle? Перший варіант напевно універсальний для любої бази даних, треба перевірити чи другий варіант працює на Oracle.
Немає коментарів:
Дописати коментар