3
我有以下SQL存儲過程,當我嘗試保存它時,它在最後一個select語句中抱怨「無效的列名'Goal'」。爲什麼這是SQL存儲過程中的無效列?
有人能告訴我爲什麼這是一個無效的comlumn名?我對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
謝謝,這個伎倆! – BrianKE