Добавление столбца из дифференциальной таблицы в сводную таблицу на SQL - PullRequest
0 голосов
/ 19 ноября 2018

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

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

кодом для сводной таблицы>

 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 Ответ

0 голосов
/ 19 ноября 2018

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

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
...