我想选择一列值乘以另一列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”的数量......这有意义吗?对不起我生锈的英语。 –