Накопленная сумма в запросе из более чем одной таблицы - PullRequest
0 голосов
/ 23 апреля 2019

У меня есть этот запрос, чтобы перечислить заказы 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 Ответ

0 голосов
/ 23 апреля 2019

Вы можете использовать переменные:

select q.*,
       (@sum := @sum + total) as running_sum
from (<your query here>) q cross join
     (select @sum := 0) params;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...