Добавление столбца из дифференциальной таблицы в сводную таблицу на 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