Поверните таблицу и объедините результат с агрегатом столбца - PullRequest
3 голосов
/ 09 мая 2019

У меня есть две таблицы со столбцами: Sales_Margin: Филиал, Код товара, Название товара, Кол-во продаж, Курс продажи, Стоимость, Маржа

Каталог: ВЕРТИКАЛЬ, ИДЕНТИФИКАТОР, ОПИСАНИЕ ЧАСТЕЙ

Мне нужен вывод таким образом, чтобы отличающиеся значения в VERTICAL из таблицы Catalog были столбцами, а ветви Branches from Sales Report - строками. Я получил эту часть, используя пивот:

Мой код:

select branch as Branch, [Vertical1], [Vertical2], [Vertical3], 
[Vertical4]
from 
( 
select branch, vertical, round((sum(margin)/sum([Sale Rate])),3) [Avg GM]
from
Sales_Margin JOIN Catalogue
ON Sales_Margin.[Item Code] = Catalogue.[ITEM ID]
group by branch, VERTICAL
) x
pivot
(
    sum([Avg GM]) 
        for vertical 
    in([Vertical1], [Vertical2], [Vertical3], [Vertical4])
) as pivot_table

Но мне также нужна сумма столбца «Маржа» из таблицы «Отчет о продажах», чтобы поля были сгруппированы по филиалам (скопировать вывод в Excel и взять проценты) Ожидаемый результат:

  Branch Vertical1 Vertical2 Vertical3  Vertical4       Margin
       A1       0%       9%       52%         0%       A1 Margin
       A2       40%      9%       66%         1%       A2 Margin    
       A3       32%      4%       57%         2%       A3 Margin    
       A4       17%      9%       65%         17%      A4 Margin    

Я попытался использовать коррелированный подзапрос, как показано ниже, но он не работает:

select branch as Branch, [Vertical1], [Vertical2], [Vertical3], 
[Vertical4], 
(select sum(Margin) from Sales_Margin a where a.Branch = 
x.branch)
from 
(
select branch as Branch, [Vertical1], [Vertical2], [Vertical3], 
[Vertical4]
from 
( 
select branch, vertical, round((sum(margin)/sum([Sale Rate])),3) [Avg GM]
from
Sales_Margin JOIN Catalogue
ON Sales_Margin.[Item Code] = Catalogue.[ITEM ID]
group by branch, VERTICAL
) x
pivot
(
    sum([Avg GM]) 
    for vertical 
    in([Vertical1], [Vertical2], [Vertical3], [Vertical4])
) as pivot_table
) z

Там написано,

The multi-part identifier "x.branch" could not be bound.

Может кто-нибудь, пожалуйста, дайте мне знать, как получить столбец Маржа с добавленными числовыми значениями, сгруппированными по ветке

1 Ответ

0 голосов
/ 09 мая 2019

Вам нужно использовать z.branch, так как он ссылается на этот внешний подзапрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...