Here is the query:
SELECT sdd.CompanyID
,sdd.ClassID
,sdd.PeriodID, SUM(sdd.Volume) AS VolumeTotal, SUM(sdd.Dollars) AS DollasTotal
,COUNT(LogID) as LogIDCount
FROM (SELECT dp.CompanyID
,ds.ClassID
,fs.PeriodID, fs.LogID, sum(fs.Volume) AS Volume,sum(fs.Dollars) AS Dollars
FROM DW.FactSupplyDataDetail fs WITH (NOLOCK)
JOIN DW.DimPLProvider dp WITH (NOLOCK)
ON fs.PLProviderID = dp.PLProviderID
JOIN DW.DimSupply ds WITH (NOLOCK)
ON fs.SupplyID = ds.SupplyID
WHERE fs.PeriodID between 201901 and 201907
GROUP BY dp.CompanyID
,ds.ClassID
,fs.PeriodID,fs.LogID) sdd
GROUP BY sdd.CompanyID
,sdd.ClassID
,sdd.PeriodID
here is the execution plan for the query:
https://www.brentozar.com/pastetheplan/?id=rkoxSEjEH
DW.FactSupplyDataDetail has 10590237 records
DW.DimPLProvider has 5071 records
DW.DimSupply has 81001 records
result of a query is 1992094