2011-12-21 12 views
0

好的,標題可能會令人困惑。如何在存儲過程中使用CTE中的標量函數中的計算列。

我需要使用一個case語句來計算扣除offa值的稅額。

該減小值將在標量函數來計算在存儲過程中的CTE的另一個值可以使用..

如何可以重新使用的標量函數內部此計算列?我已經嘗試了以下。

paidminusIPT = case when country = "ireland" then (paid - 1) else paid end, 
dbo.fnEarnedPrem(a,b,c,d,paidminusipt,e,f) 

請注意,這並不是確切的代碼,只是一個快速參考..

這是可能的嗎?

問候。

回答

1

你應該使用完整的表達,而不是單純的列名:

paidminusIPT = case when country = "ireland" then (paid - 1) else paid end, 
dbo.fnEarnedPrem(a,b,c,d,case when country = "ireland" then (paid - 1) else paid end,e,f) 

或使用CTE

;WITH C as(
SELECT a,b,c,d,e,f,paidminusIPT = case when country = "ireland" then (paid - 1) else paid end FROM SomeTable) 
Select *,dbo.fnEarnedPrem(a,b,c,d,paidminusipt,e,f) FROM C 
+0

所以基本上你不能?好吧,我只需要做很長的路!乾杯! – 2011-12-21 10:43:26