当我在查询窗口中执行此查询时,它工作正常,但如果我使用此查询创建视图,它会抛出错误消息"multi- part identifier 'TP.IndexYear'
无法绑定”。
询问:
SELECT ISNULL(TP.Outline, 0) AS Outline, ISNULL(TP.OutlineInline, 0) - ISNULL(TP.Outline, 0) AS Inline FROM (
SELECT
COUNT(DISTINCT TP.PltrhPositionID) AS OutlineInline,
SUM(CASE WHEN YEAR(PPH.EndDate) = 9999 OR (PPH.EndDate >= '12/31/' + CONVERT(VARCHAR, TP.IndexYear)) THEN 1 ELSE 0 END) AS Outline
FROM (
SELECT
PH.PltrhPositionID,
CASE
WHEN PH.Plan1 IS NULL OR PH.Plan1 = '' THEN 0 + PP.StartYear
WHEN PH.Plan2 IS NULL OR PH.Plan2 = '' THEN 1 + PP.StartYear
WHEN PH.Plan3 IS NULL OR PH.Plan3 = '' THEN 2 + PP.StartYear
WHEN PH.Plan4 IS NULL OR PH.Plan4 = '' THEN 3 + PP.StartYear
WHEN PH.Plan5 IS NULL OR PH.Plan5 = '' THEN 4 + PP.StartYear
WHEN PH.Plan6 IS NULL OR PH.Plan6 = '' THEN 5 + PP.StartYear
ELSE 6 + PP.StartYear
END AS IndexYear
FROM OdpTools_PltrhPosition PH
LEFT JOIN OdpTools_PltrhPeriod PP ON PP.ID = PH.PltrhPeriodID
WHERE PH.Closed = 0
) AS TP
LEFT JOIN OdpTools_CurrentPlanPositionHistory PPH ON PPH.PltrhPositionID = TP.PltrhPositionID
) TP
谁能解释这个奇怪的谜团?
提前致谢,
布赖恩