Мне нужен процент от общего объема продаж каждого человека. Я ожидаю 4 записи на SalesPersonID, по одной на каждый год. Я получаю 16 записей на SalesPersonID. Результаты общего итога показывают четыре разных суммы за каждый год. Когда я запускаю запрос один, он получает правильный результат.
WITH gt as (
Select sum(subtotal + taxamt) as YearlyGrandTotal
, YEAR(OrderDate) as gtYear
From AdventureWorks2017.Sales.SalesOrderHeader
group by YEAR(OrderDate)
),
it as (
Select SalesPersonID, sum(subtotal + taxamt) as IndividualSales
, year(OrderDate) as SalesYear
From AdventureWorks2017.Sales.SalesOrderHeader
where SalesPersonID is not null
Group by SalesPersonID, year(OrderDate)
)
Select SalesPersonID,SalesYear, IndividualSales,YearlyGrandTotal
, 100*(IndividualSales/YearlyGrandTotal) as PercentageTotalRevenue
From gt,it
Group by SalesYear,SalesPersonID,IndividualSales,YearlyGrandTotal
order by SalesPersonID;