#mysql #sql
#mysql — сервер #sql #mysql
Вопрос:
У меня есть этот запрос для перечисления заказов woocommerce, заказанных с определенным купоном, и я хочу добавить столбец с совокупной суммой. Я пробовал SUM(_order_total) OVER(ORDER BY po.ID)
, но это не работает.
SELECT DATE_FORMAT(po.post_date, '%Y-%m-%d ') as Order_date,
po.ID AS Order_Number,
MAX(CASE WHEN pmo.meta_key = '_order_total' AND po.ID = pmo.post_id THEN pmo.meta_value END) AS Total
FROM `wpl9_posts` AS pc
INNER JOIN `wpl9_postmeta` AS pmc ON pc.`ID` = pmc.`post_id`
INNER JOIN `wpl9_woocommerce_order_items` AS woi ON pc.post_title = woi.order_item_name
AND woi.order_item_type = 'coupon'
INNER JOIN `wpl9_posts` AS po ON woi.order_id = po.ID
AND po.post_type = 'shop_order'
AND po.post_status IN ('wc-completed', 'wc-processing', 'wc-refunded') -- Added needed order status over here.
INNER JOIN `wpl9_postmeta` AS pmo ON po.ID = pmo.post_id
WHERE pc.post_type = 'shop_coupon' AND
pc.post_title = 'partner001' AND
GROUP BY po.ID
ORDER BY pc.ID DESC
Комментарии:
1. Пожалуйста, приведите пример ввода, ожидаемый результат и предоставьте сообщение об ошибке.
2. форматированный код; улучшенная формулировка.
Ответ №1:
Вы можете использовать переменные:
select q.*,
(@sum := @sum total) as running_sum
from (<your query here>) q cross join
(select @sum := 0) params;