MYSQL: использование ROLLUP в подзапросе

Я пытаюсь использовать ROLLUP как часть годового расчета запроса. Я близок к этому запросу, однако мой накопительный пакет "Количество в прошлом году" возвращает только промежуточный итог значения второй строки. Я не могу понять почему и был бы признателен за толчок в правильном направлении. Спасибо!

SELECT   `sale`.`retailer_date` AS 'rWeek',

     IFNULL(A.pCategory,"Total"),
     sum(`sale`.`quantity`) AS 'Quantity',
     A.pQuantity AS 'Last Year Quantity',
     concat(round(((sum(`sale`.`quantity`) - A.pQuantity) / sum(`sale`.`quantity`)) * 100,2),'%') as 'YoY' 
FROM     `sale` 
INNER JOIN `product`  ON `sale`.`product_id` = `product`.`product_id`
INNER JOIN `product_product_attribute_valu`  ON `product`.`product_id` = `product_product_attribute_valu`.`product_id` 
INNER JOIN `product_attribute_value`  ON `product_product_attribute_valu`.`product_attribute_value_id` = `product_attribute_value`.`product_attribute_value_id` 
INNER JOIN
(SELECT   `sale`.`retailer_date` AS 'prevWeek',
 IFNULL(`product_attribute_value`.`product_attribute_value`,"Total") AS 'prevCategory', sum(`sale`.`quantity`) AS 'prevQuantity'
FROM     `sale` 
INNER JOIN `product`  ON `sale`.`product_id` = `product`.`product_id`
INNER JOIN `product_product_attribute_valu`  ON `product`.`product_id` = `product_product_attribute_valu`.`product_id` 
INNER JOIN `product_attribute_value`  ON `product_product_attribute_valu`.`product_attribute_value_id` = `product_attribute_value`.`product_attribute_value_id` 
WHERE (`product_attribute_value`.`product_attribute_value` = 'A' OR `product_attribute_value`.`product_attribute_value` = 'B')
AND retailer_date = '201701'
GROUP BY 2 WITH ROLLUP
) A on `product_attribute_value`.`product_attribute_value` = A.pCategory 
WHERE (`product_attribute_value`.`product_attribute_value` = 'A' OR `product_attribute_value`.`product_attribute_value` = 'B')
AND retailer_date = '201801'
GROUP BY A.pCategory with ROLLUP

0 ответов

Другие вопросы по тегам