2014-02-25 33 views
1

我正在使用此查詢來計算年度財務值。使用別名作爲列

select [Year], 
     [FinanceValue-2014], 
     [FinanceValue-2013], 
     [FinanceValue-2012], 
     [FinanceValue-2014]-[FinanceValue-2013] as [FinanceValue Variance] 

現在我需要乘以[FinanceValue方差] * 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四捨五入這樣5690.5894小數點後4位。真的很感謝這方面的幫助。

回答

2

這可以使用表格表達式來完成,如下所示。在外部查詢的任何子句中,可以引用在內部查詢的SELECT子句中分配的列別名。這有助於避免在SELECT子句之前邏輯處理的查詢子句(例如WHERE或GROUP BY)中不能引用SELECT子句中分配的列別名這一事實。

這麼寫的:

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 
+0

非常感謝迪普希卡。它效果很好。 – Learner

0

我很確定你在做額外的計算時不能使用別名。你需要做完整的計算,然後改爲別名。

1

使用交叉應用創建別名

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