SQL 2008 - 调用命名公式

时间:2016-09-08 16:11:10

标签: sql sql-server sql-server-2008-r2 call divide

所以我想说我有这段代码:

Select
 'Position Date' =              todaypositiondate
,'Realized' =           round(sum(realizedccy*spotsek),0)

FROM T1 
    group by todaypositiondate
    order by todaypositiondate desc

如果我想将'Realized'与100分开。 如何设置'new' = 'Realized'/100而不是'new' = (round(sum(realizedccy*spotsek),0))/100

祝你好运

1 个答案:

答案 0 :(得分:1)

不确定为什么要这样做,但这是使用CTE的一种方式。您也可以使用子查询,但这两个步骤对于您想要的数学运算来说都是毫无意义的,并且会降低性能。您无法在同一语句中通过它的别名引用列别名,就像您尝试的那样。这包括在wheregroup byorder by条款中引用它

;with cte as(
Select
    todaypositiondate as 
    round(sum(realizedccy*spotsek),0) as Realized
from T1 
    group by todaypositiondate
    order by todaypositiondate desc)

select 
    todaypositiondate,
    Realized,
    Realized / 100 as RealizedDivHundred
from cte