其餘的我已經盡力簡化這個有點不刪除任何相關信息,所以這裏去排除行...如何從彙總基礎上,中行的總
我試圖重寫這是一個目前彙總數據的視圖,但是基於某些數據的彙總,它可能包含或可能不包含其他數據。例如:
;WITH CTE_ExtraFees AS
(
SELECT AccountID, SUM(Amount) AS TotalAmount
FROM AccountFees
WHERE
FeeType = 'EXTRA' AND
AccountType = 'P'
GROUP BY
AccountID
)
SELECT
AccountID,
CASE
WHEN SUM(F.Amount) > 0 THEN SUM(F.Amount) - XF.TotalAmount
ELSE SUM(F.Amount)
END AS FeeAmount
FROM
AccountFees F
LEFT OUTER JOIN CTE_ExtraFees XF ON XF.AccountID = F.AccountID
GROUP BY
F.AccountID,
XF.TotalAmount
有上額外的費用被排除相當多一點的邏輯,但我所有的制定出和上面是我的最後一個關鍵點。我現在有一些與此類似:
SELECT
AccountID,
SUM(Amount) AS FeeAmount
FROM
AccountFees
WHERE
(
FeeType <> 'EXTRA' OR
AccountType <> 'P'
)
GROUP BY
AccountID
當然,問題是,當我SUM(Fees) <= 0
最終仍不包括額外的費用。
我想,以避免由於性能原因進行多次聚集,所以我希望做這一切在一個聚集,但我似乎無法拿出什麼來完成相同的邏輯。
感謝任何幫助或建議,你可以給!
這是什麼棘手句話是什麼意思'但基於一些數據的彙總它可能會或可能不會包括其他data'?沒有樣本數據我無法得到你。 –