无法在查询中发现错误,无效列错误

时间:2017-08-04 01:34:41

标签: sql-server

我正在编写此查询但收到错误“无效列”#39;我试过这个answer 但没有运气, 下面是表和错误

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:2)

您不能在同一SELECT语句中使用别名。要么把它放在子查询中:

SELECT
    npv, npv - 1000
FROM (
    SELECT (listprice - standardcost) * quantity AS npv
    FROM SampleTable
) t

或重复使用公式:

SELECT 
    (listprice - standardcost) * quantity AS npv,
    ((listprice - standardcost) * quantity) - 1000
FROM SampleTable

如果您在嵌套或加入的查询中多次使用该公式,则可以将其放在CTE中:

WITH Cte AS(
    SELECT *
        (listprice - standardcost) * quantity AS npv,
        ((listprice - standardcost) * quantity) - 1000 AS colAlias -- your alias here
    FROM SampleTale
)
SELECT * FROM Cte

下次使用该公式时,SELECT代替CTE