我正在使用此查询来计算年度财务值。
select [Year],
[FinanceValue-2014],
[FinanceValue-2013],
[FinanceValue-2012],
[FinanceValue-2014]-[FinanceValue-2013] as [FinanceValue Variance]
现在我需要将[FinanceValue Variance] * 2.50相乘,为此我如何在查询中使用别名作为列。我尝试了这个但是没有用。
select [Year],
[FinanceValue-2014],
[FinanceValue-2013],
[FinanceValue-2012],
[FinanceValue-2014]-[FinanceValue-2013] as [FinanceValue Variance],
[FinanceValue Variance] * 2.50 as [NewVariance]
from Finance
SumofVariance输出将类似于5690.5893656另外我如何显示SumofVariance来舍入4个小数位,如5690.5894。真的很感激任何帮助。
答案 0 :(得分:2)
这可以使用表格表达式完成,如下所示。在外部查询的任何子句中,您可以引用在内部查询的SELECT子句中分配的列别名。这有助于您解决这样的事实:您无法引用在SELECT子句之前逻辑处理的查询子句中的SELECT子句中指定的列别名(例如,WHERE或GROUP BY)。
所以写作:
select [Year],
[FinanceValue-2014],
[FinanceValue-2013],
[FinanceValue-2012],
[FinanceValue Variance],
Round([FinanceValue Variance] * 2.50,4) as [NewVariance]
from (
select [Year],
[FinanceValue-2014],
[FinanceValue-2013],
[FinanceValue-2012],
[FinanceValue-2014]-[FinanceValue-2013] as [FinanceValue Variance]
from Finance)T
答案 1 :(得分:1)
使用CROSS APPLY创建别名
SELECT [Year],
[FinanceValue-2014],
[FinanceValue-2013],
[FinanceValue-2012],
[FinanceValue Variance],
[FinanceValue Variance] * 2.50 as [NewVariance]
FROM Finance
CROSS APPLY (
SELECT [FinanceValue-2014]-[FinanceValue-2013] as [FinanceValue Variance]
) AS CA1
答案 2 :(得分:0)
我很确定在进行其他计算时你不能使用别名。您将完成全部计算,然后将其替换为。