2
我需要計算Quantity
列的值,其中Name = A
使用這個公式中的SQL服務器:SQL-Server。計算公式與子查詢中聚合函數
A(Quantity) = (B*B1 + C*C1 + D*D1)/SUM(B1 + C1 + D1) + E
的樣本數據:
Static Static Dynamic
Name ID Quantity -- Here are more columns, but doesn't matter
A 1 ? -- need to calculate this value
B 2 4
C 3 6
D 4 8
E 5 5
A1 6 -
B1 7 2
C1 8 3
D1 9 4
你有任何想法如何做它? Quantity
列中的所有值都是動態的,Name
和Id
列是靜態的。
我認爲像下面,但存在的問題是子查詢不能在聚合函數中使用:
SELECT Name,
Id,
ISNULL(MAX(CASE WHEN f.Period = YEAR(GETDATE())*100 + 01 THEN
CASE WHEN Name = 'A' THEN
(SELECT Quantity FROM Cte WHERE Name = 'A') *
(SELECT Quantity FROM Cte WHERE Name = 'A1') +
(SELECT Quantity FROM Cte WHERE Name = 'B') *
(SELECT Quantity FROM Cte WHERE Name = 'B1')
...................
ELSE Quantity
END
END), 0) as Quantity
FROM tbl...
我得到了以下錯誤:
Cannot perform an aggregate function on an expression containing an aggregate or a subquery.
你有什麼想法如何能我用聚合函數或任何其他方式來計算它的子查詢?
派生表? – jarlh