Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么这是SQL存储过程中的无效列?_Sql_Sql Server 2008 - Fatal编程技术网

为什么这是SQL存储过程中的无效列?

为什么这是SQL存储过程中的无效列?,sql,sql-server-2008,Sql,Sql Server 2008,我有以下SQL存储过程,当我试图保存它时,它会抱怨上一个select语句中的列名“Goal”无效 有人能告诉我为什么这是一个无效的ComColumn名称吗?我对NetSales做的基本上是一样的,它并没有抱怨那个专栏 if object_id('tempdb..#tmpHours') is not null DROP TABLE #tmpHours if object_id('tempdb..#tmpPay') is not null DROP TABLE #tmpPay SE

我有以下SQL存储过程,当我试图保存它时,它会抱怨上一个select语句中的列名“Goal”无效

有人能告诉我为什么这是一个无效的ComColumn名称吗?我对NetSales做的基本上是一样的,它并没有抱怨那个专栏

if object_id('tempdb..#tmpHours') is not null
    DROP TABLE #tmpHours
if object_id('tempdb..#tmpPay') is not null
    DROP TABLE #tmpPay

SET @MondayOfCurrentWeek = (SELECT DATEADD(wk, DATEDIFF(wk,0,@WeekOf), 0) )

SELECT  p.PerceptionistID AS PerceptionistID, p.BaseCommission AS BaseCommission, p.BonusCommission AS BonusCommission, 
        h.WeekOf AS WeekOf, h.WorkHours AS WorkHours, h.PTOHours AS PTOHours, h.HolidayHours AS HolidayHours,
        ROUND(h.WorkHours, 0) AS HoursRounded, 
        (
            SELECT COUNT(c.PerceptionistID)
            FROM T_Call c 
            WHERE 
                c.PerceptionistID = p.PerceptionistID 
                AND c.OutcomeID = @OutcomeSale 
                AND EnteredOn BETWEEN @MondayOfCurrentWeek AND DATEADD(dd, 7, @MondayOfCurrentWeek)
        ) AS GrossSales,
        (
            SELECT COUNT (c.PerceptionistID)
            FROM T_CallCredit cc
                INNER JOIN T_Call c
                    ON cc.CallID = c.CallID
            WHERE 
                c.PerceptionistID = p.PerceptionistID 
                AND cc.CallCreditStatusID NOT IN (17, 18)  -- 17 - 'Error in Customer Account', 18 - 'Courtesy Credit'
                AND cc.EnteredOn BETWEEN @MondayOfCurrentWeek AND DATEADD(dd, 7, @MondayOfCurrentWeek)
        ) AS Credits

INTO #tmpHours
FROM T_Perceptionist p
    RIGHT JOIN T_PerceptionistHours h
        ON p.PerceptionistID = h.PerceptionistID
WHERE h.WeekOf = @MondayOfCurrentWeek


SELECT  PerceptionistID, CAST((HoursRounded*2) AS int) AS Goal, GrossSales, Credits, (GrossSales - Credits) AS NetSales, 
        HoursRounded, WorkHours, PTOHours, HolidayHours, BaseCommission, BonusCommission, 
        [dbo].fnCalculateCommission(BaseCommission, BonusCommission, (GrossSales - Credits), CAST((HoursRounded*2) AS int)) AS CommissionPay
INTO #tmpPay    
FROM #tmpHours 


--- Complains about column name 'Goal' in the following statement
SELECT  PerceptionistID, Goal, GrossSales, Credits, NetSales, HoursRounded, WorkHours, PTOHours, 
        HolidayHours, BaseCommission, BonusCommission, CommissionPay
FROM #tmpPay

尝试在新连接中运行它,或者先在单独的批处理中删除临时表

当您没有目标列,并且解析器根据现有表验证列名,遇到绑定错误并拒绝运行批处理时,临时表可能仍挂起于前一批处理中

如果临时表根本不存在,则语句的编译将被延迟