Извините, я вроде новичка в MySQL. Я хочу упорядочить свои данные по дате, порядковому номеру и получить цену каждого предмета
id | order_number | product_name | order_date | price
1 | A0919-002 | Bottle | 2019-09-29 | 20000
2 | A0919-001 | Bottle | 2019-09-29 | 10000
3 | A0819-004 | Bottle | 2019-08-30 | 40000
4 | A0819-003 | Bottle | 2019-08-30 | 30000
, которую я пробовал, но не могу получить ожидаемый результат. и я полагаю, что использование такого подзапроса убьет мою производительность.
Я пытаюсь использовать левое соединение / соединение, но я не могу думать, что мне нужно делать.
SELECT id
, order_number
, product_name
, order_date
, price
, IFNULL(
(SELECT price
FROM order_d
WHERE order_date <= od1.order_date
AND product_name = od1.product_name
AND id != od1.id
ORDER
BY order_date DESC
, CAST(SUBSTRING(order_number, 7, 3) AS INT) DESC
LIMIT 1
), '-') LastPrice
FROM order_d od1
WHERE order_date <= '2019-09-30'
ORDER
BY od1.order_date ASC
, CAST(SUBSTRING(od1.order_number, 7, 3) AS INT) ASC
Я ожидаю
A0819-003 | Bottle | 30000 : Last Price : -
A0819-004 | Bottle | 40000 : Last Price : 30000
A0919-001 | Bottle | 10000 : Last Price : 40000
A0919-002 | Bottle | 20000 : Last Price : 10000