Совокупная сумма в запросе из более чем одной таблицы

#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;