2016-09-08 2 views
0

kann also sagen, ich habe diesen Code:SQL 2008 - Aufruf zur genannten Formel

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

FROM T1 
    group by todaypositiondate 
    order by todaypositiondate desc 

Wenn ich mit 100 zu teilen ‚Realisiert‘ wan Wie kann ich 'new' = 'Realized'/100 statt 'new' = (round(sum(realizedccy*spotsek),0))/100?

Mit freundlichen Grüßen

+0

Warum wollen Sie verweisen, das zu tun? Es ist möglich, erfordert aber mehr Schritte und mehr Code. – scsimon

Antwort

1

nicht sicher, warum wollen Sie das tun, aber hier ist eine Möglichkeit, eine CTE verwenden. Sie können auch Unterabfragen verwenden, aber beide dieser Schritte sind für die von Ihnen gewünschte Mathematik ziemlich sinnlos und verringern die Leistung. Sie können keinen Spaltenalias anhand seines Alias ​​innerhalb derselben Anweisung referenzieren, wie Sie es versuchen. Dazu gehört es in der where oder group by oder order by Klauseln

;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