我已经能够成功地在一个计算查询中进行循环,但我希望所有的数据都能填充到一个数据集中,而不是多个数据集。我似乎找不到在循环中添加某种UNION ALL的方法(似乎与While Loop不兼容)。 在这个循环计算中,我的目标是得到一年中每一天的年初至今的总数(例如:1/1/2014-1/2/2014,1/1/2014-1/3/2014...一直到现在的1/1/2014-9/15/2014)。循环似乎是实现这一目标的唯一途径,而不需要在查询中设置365个计算块(一年中的每一天都有一个)。
DECLARE @Lcounter INT
SET @Lcounter = 0
WHILE (@StartDte + @Lcounter < GetDate ( ))
BEGIN
SELECT
YEAR(ACD.WorkDte) as WorkDte,
@StartDte + @Lcounter as RptType,
'Month' as RptLvl,
ACD.LOB, 'NULL' as CIB, 'NULL' as SwitchNbr,
'NULL' as SkillNbr,
(SUM(ACD.ACDCallTotCt) + SUM(ACD.AbandonCallTotCt) - SUM(ACD.AbandonCall1Ct) )as CallsRcvd,
SUM(ACD.ACDCallTotCt) as CallsAnswrd
#FinalResults ACD
WHERE
ACD.WorkDte >= @StartDte
AND ACD.WorkDte <= @StartDte + @Lcounter
GROUP BY
Year(ACD.WorkDte), ACD.LOB
SET @Lcounter = @Lcounter + 1