0

したがって、同じ計算を使用する 2 つの列エイリアスがあります。

,case when bi.PolicyFeeFactor = 0 then 0 else CAST(ROUND(nb.AnnualPolicyFee * bi.PolicyFeeFactor,2)AS DECIMAL(6,2)) end as UNIT_POLFEE_Y

,case when bi.PolicyFeeFactor = 0 then 0 else CAST(ROUND(nb.AnnualPolicyFee * bi.PolicyFeeFactor,2)AS DECIMAL(6,2)) end as UNIT_PUPFEE_Y

計算を一度だけ記述して、その 1 つのステートメントから両方の列エイリアスを作成できる方法を探しています。

,case when bi.PolicyFeeFactor = 0 then 0 else CAST(ROUND(nb.AnnualPolicyFee * bi.PolicyFeeFactor,2)AS DECIMAL(6,2)) end as UNIT_PUPFEE_Y, UNIT_POLFEE_Y

4

2 に答える 2

0

サブクエリ内にラップします。例

SELECT Result AS UNIT_PUPFEE_Y, 
       Result AS UNIT_POLFEE_Y
FROM
    (
        SELECT CASE .... END AS Result
        FROM   tableName
    ) s
于 2013-03-28T10:33:56.523 に答える
0

あなたはこのように書くかもしれません、

SELECT *,UNIT_PULFEE_Y AS UNIT_PUPFEE_Y FROM
(SELECT *
,case when bi.PolicyFeeFactor = 0 then 0 else CAST(ROUND(nb.AnnualPolicyFee *              bi.PolicyFeeFactor,2)AS DECIMAL(6,2)) end as UNIT_PULFEE_Y
FROM Table )A
于 2013-03-28T10:39:34.193 に答える