【发布时间】:2015-03-05 20:51:08
【问题描述】:
我刚刚发现了 CROSS APPLY 运算符,并认为它在操作派生列进行计算方面非常有用。
所以,我尝试了以下方法:
SELECT leadYear,TotalLeadsCalled,SuccessLeadsCalled,SuccessLeadsPercent
FROM dbo.tblBinOutboundCallActivity
CROSS APPLY(VALUES (YEAR(leadactivitydate))) AS a1(leadyear)
CROSS APPLY(VALUES (COUNT(leadStatusID))) AS a2(TotalLeadsCalled)
CROSS APPLY(VALUES (COUNT(CASE WHEN leadStatusID = 2 THEN 1 ELSE NULL END))) AS a3(SuccessLeadsCalled)
CROSS APPLY(VALUES (SUM((SuccessLeadsCalled/TotalLeadsCalled)*100))) AS a4(SuccessLeadsPercent)
GROUP BY leadYear
但我收到以下错误:
APPLY 右侧的聚合不能引用来自 左边。
我不太明白这个错误,尤其是第一个交叉应用实际上是孤立地工作的。我是不是完全搞错了这个概念?
【问题讨论】:
标签: tsql cross-apply