Как использовать вычисляемый столбец в скалярной функции в CTE в хранимой процедуре .. - PullRequest
0 голосов
/ 21 декабря 2011

Хорошо, название, вероятно, сбивает с толку.

Мне нужно использовать регистр для расчета суммы налога для вычета стоимости.

Это уменьшенное значение будет использоваться в скалярной функции для вычисления другого значения в CTE в хранимой процедуре.

Как я могу повторно использовать этот вычисленный столбец внутри скалярной функции ?? Я попробовал следующее.

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

пожалуйста, обратите внимание, это не точный код, просто краткая справка ..

Возможно ли это сделать?

Привет.

1 Ответ

1 голос
/ 21 декабря 2011

Вы должны использовать полное выражение вместо просто имени столбца:

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 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...