CTE дает неожиданный результат - PullRequest
0 голосов
/ 09 апреля 2019

Мне нужен процент от общего объема продаж каждого человека. Я ожидаю 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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...