我想選擇一列值乘以另一列SQL SERVER - 乘另一列
select
sum(CS.revenue * count(C.subid)) as [total_revenue]
from campaigns_history CH
LEFT OUTER JOIN campaign_sends CS ON CS.campaign_historyID = CH.id
LEFT OUTER JOIN c C ON C.subid = cast(CS.id as nchar(255))
WHERE CH.id=19
的計數總和的數列值的SELECT SUM我得到這個錯誤:
Cannot perform an aggregate function on an expression containing an aggregate or a subquery.
我該怎麼做?
感謝和快樂的編程! :)
基本上你得到這樣做的原因是因爲你試圖通過一個非集合因爲行的量是不一樣的,SQL-SRV不喜歡這個乘以一個aggergate(COUNT) 。我會用下面的解決方案(通過Eli),因爲這是最佳實踐 –
謝謝@MikeMirabelli – Eli
@MikeMirabelli,@Eli--請檢查我自己的答案,我在解釋問題時沒有讓自己清楚。 'sum(ca)* count(af)'不同於'sum(ca * count(af))' - 第一個是將總和'ca'乘以'af'的次數,第二個是「ca」值的總和乘以「af」的數量......這有意義嗎?對不起我生鏽的英語。 –