Średnia ważona w T-SQL (np. Excel SUMPRODUCT)

Szukam sposobu na uzyskanie średniej ważonej z dwóch wierszy danych o tej samej liczbie kolumn, gdzie średnia jest następująca (zapożyczanie notacji programu Excel):

(A1*B1)+(A2*B2)+...+(An*Bn)/SUM(A1:An)

Pierwsza część odzwierciedla tę samą funkcjonalność co funkcja SUMPRODUCT () programu Excel.

Mój haczyk polega na tym, że muszę dynamicznie określić, który wiersz zostanie uśredniony za pomocą wag, oraz w którym wierszu pochodzą wagi i zakres dat.

EDYCJA: To jest łatwiejsze niż myślałem, ponieważ Excel zmusił mnie do myślenia, że ​​potrzebuję jakiegoś rodzaju osi obrotu. Do tej pory moim rozwiązaniem jest:

select sum(baseSeries.Actual * weightSeries.Actual) / sum(weightSeries.Actual)
from (
    select RecordDate , Actual 
    from CalcProductionRecords 
    where KPI = 'Weighty'
) baseSeries inner join (       
    select RecordDate , Actual 
    from CalcProductionRecords 
    where KPI = 'Tons Milled'   
) weightSeries on baseSeries.RecordDate = weightSeries.RecordDate

questionAnswers(3)

yourAnswerToTheQuestion