CTE错误:无法绑定多部分标识符

时间:2018-08-22 16:18:55

标签: sql sql-server

表结构:

dbo.PS_Margin

2列

[Project Profit by Person %], [Emp or Vendor ID]

错误消息:

  

无效的对象名称'dbo.PS_Margin'

     

(已解决)无法绑定多部件标识符“ PS_Margin.Emp或供应商ID

问题/目标:

  1. 上面的错误消息
  2. 可能需要在列名中添加别名(或修复当前别名),以空格和特殊字符表示,尽管我不知道该怎么做

    WITH Profit_Score_CTE ( [Emp or Vendor ID], [Project Profit by Person %], [Profit Score] ) AS (
    SELECT ps.[Emp or Vendor ID], [Profit Score], 
        CASE
        WHEN ps.[Project Profit by Person %] > .4 THEN 1
        WHEN ps.[Project Profit by Person %] > .2 THEN 3
        WHEN ps.[Project Profit by Person %] > .1 THEN 5
        WHEN ps.[Project Profit by Person %] > .05 THEN 8
        ELSE 13 END
        AS [Profit Score]
    FROM dbo.PS_Margin ps )
    
    SELECT PS_Emp.[Employee Name], PS_Emp.[USID], [Profit Score]*0.3  AS [Final Score]
      FROM dbo.PS_Emp LEFT OUTER JOIN Profit_Score_CTE ps
       ON PS_Emp.[USID] = ps.[Emp or Vendor ID]
    

1 个答案:

答案 0 :(得分:0)

也许你打算:

SELECT PS_Emp.[Employee Name], PS_Emp.[USID], [Profit Score]*0.3  AS [Final Score]
FROM dbo.PS_Emp LEFT OUTER JOIN
     Profit_Score_CTE ps
     ON PS_Emp.[USID] = ps.[Emp or Vendor ID] 

您已经定义了CTE,但您没有使用它。