Есть две таблицы:Сложное сумма() с группой и порядке по дате
* ORDER
- id
- pay_type
* ORDER_PRICE
- order_id
- dt
- price
цена заказа может быть изменен, например:
order_id | price | dt
1 | 100.3 | 2013-10-25
1 | 105.7 | 2013-10-28
2 | 207.4 | 2013-09-13
4 | 98.0 | 2013-10-03
Я могу выбрать ценовую историю на любую дату, как что:
SELECT
o.`id`,
(SELECT op.`price` FROM `order_price` op
WHERE op.`order_id`=o.`id` AND op.`dt` <= '2013-10-26'
ORDER BY op.`dt` DESC LIMIT 1) order_price
FROM `order` o
Это дает мне правильные цены на определенную дату
order_id | price | dt
1 | 100.3 | 2013-10-25
2 | 207.4 | 2013-09-13
4 | 98.0 | 2013-10-03
Но мне нужна сумма второй колонки (независимо от того, какой номер заказа, только одно число - 405,7 в этом случае).
Есть ли решение для такой ситуации? Могут быть тысячи заказов, поэтому я думаю, что было бы неправильно суммировать записи за пределами mysql. Может, с самого начала это не так, и мне нужна другая структура? Спасибо за ваше время и помощь.
перед тем, как попробовать, я хотел бы знать, почему вам нужна сумма всех исторически измененных цен. в чем смысл этой информации? – Alp
Этот запрос создает два столбца, а не три. – Strawberry
также, почему может измениться цена заказа? заказы являются отдельными субъектами во времени и должны иметь фиксированную цену – Alp