SSMS 2008'执行批处理时发生错误。错误信息是:索引超出了数组的范围。

时间:2017-09-21 07:58:40

标签: sql-server sql-server-2008-r2 ssms

使用SSMS / SQL Server 2008 R2。

我有以下SQL脚本,它使用两个CTE和一个PIVOT语句

DECLARE @WEEK_START_SUBTRACTER INT; 
SET @WEEK_START_SUBTRACTER = 34;

-- CTE1 SChedule History (FORECASTS) and Date Dimension
WITH ctevh
AS
(
SELECT 
dd.WeekOfYear - @WEEK_START_SUBTRACTER AS PlanningWeekNo
,sh.FORECAST_CALLS 
,sh.CT_NAME 
,CONVERT(varchar(10),sh.SCHED_DATE,120) AS SCHED_DATE

FROM  dbo.DateDimension dd 
INNER JOIN Planning.ScheduleHistory sh 
ON dd.Date = sh.EXTRACT_DATE 

)
--CTE 2 VirtualQueues (ACTUALS) and Business Areas
, ctevq
AS
(
SELECT vq.StartDate
,ba.IEXDescription
,SUM(vq.Offered) AS Offered
FROM  Planning.VirtualQueues vq 
INNER JOIN
Planning.BusinessAreas ba 
ON vq.VirtualQueue = ba.VirtualQueue

GROUP BY ba.IEXDescription, vq.StartDate

HAVING ba.IEXDescription = 'Personal'
OR
ba.IEXDescription = 'Corporate'
OR
ba.IEXDescription = 'Company'
)

-- Join the two CTEs
SELECT  *
FROM ctevh
LEFT OUTER JOIN ctevq
ON ctevh.CT_NAME = ctevq.IEXDescription
AND
ctevh.SCHED_DATE = ctevq.StartDate

PIVOT (
MAX(ctevh.FORECAST_CALLS)
FOR PlanningWeekNo in ([1],[2],[3],[4])
) AS pvt

我得到以下错误,我认为这是由PIVOT部分引起的:

  

执行批处理时发生错误。错误消息是:索引超出了数组的范围。

如果我用实际的(精确的)VIEW替换CTE2'ctevq',那么脚本运行正常。

我在网上搜索过,整体解决方案似乎是升级您的SSMS / SQL Server。这些都不是一个选项

0 个答案:

没有答案