Добавление столбца из дифференциальной таблицы в сводную таблицу на SQL

Я новичок в SQL и пытаюсь выяснить столбец поиска в сводной таблице. Мне удалось сделать свод с первым столбцом в качестве первичного ключа. Затем я хочу добавить столбец из другого запроса, то есть из объединенных таблиц.

У меня есть и сводная таблица, и второй запрос, но я не могу добавить их вместе. Не могли бы вы помочь мне с этим

код для разворота>

 Select         Variant
                ,WH1
                ,WH2
                ,WH3 
FROM(
Select  WH
,Variant
,stock pieces 
FROM StockData
Where Date = cast(Getdate()-3 AS Date)

) Stock

Pivot( SUM(AtdPieces) FOR Warehouse  IN ([6492],[7318],[7348],[7347]) ) as Pvt
Order by Poznan desc;

код для второй таблицы

Select     Variant
           ,SUM(Sales) AS TotalSales
           ,SUM(Discount) AS TotalDisc

From SalesDatabase as SDB
Join DiscountDatabase as DDB 
On SDB.Variant=DDB. Variant)

Поэтому я хочу добавить столбцы "Всего продаж" и "Всего диска" рядом с моей сводной таблицей. Таким образом, для каждого варианта я вижу акции в WH1, акции в WH2, sotkc в WH3, общую продажу и общую скидку.

Большое спасибо за вашу помощь!

1 ответ

Решение

Вы можете попробовать ниже, используя общее табличное выражение и присоединиться

with cte as
(
 Select         Variant
                ,WH1
                ,WH2
                ,WH3 
FROM(
Select  WH
,Variant
,stock pieces 
FROM StockData
Where Date = cast(Getdate()-3 AS Date)

) Stock

Pivot( SUM(AtdPieces) FOR Warehouse  IN ([6492],[7318],[7348],[7347]) ) as Pvt
Order by Poznan desc;
)

select cte.variant,WH1, WH2, WH3, SUM(Sales) AS TotalSales
           ,SUM(Discount) AS TotalDisc from cte join 
SalesDatabase as SDB on cte.variant=SDB.variant
Join DiscountDatabase as DDB On SDB.Variant=DDB.Variant
group by cte.variant,WH1, WH2, WH3
Другие вопросы по тегам