SQL Server で製品を入手するには、2 つのオプションがあります。
<強い>1.対数と指数を使用してシミュレート:
create table returns
(
returnDate date,
returnValue float
)
insert into returns values('05/31/06', -0.002271835)
insert into returns values('06/30/06', -0.001095986)
insert into returns values('07/31/06', 0.006984908)
insert into returns values('08/31/06', 0.014865360)
insert into returns values('09/30/06', 0.008938896)
select totalReturn = power
(
cast(10.0 as float)
, sum(log10(returnValue + 1.0))
) - 1
from returns;
with tr as
(
select totalReturn = power
(
cast(10.0 as float)
, sum(log10(returnValue + 1.0))
) - 1
, months = cast(count(1) as float)
from returns
)
select annualized = power(totalReturn + 1, (1.0 / (months / 12.0))) - 1
from tr;
これは、ログと指数を活用して積の計算をシミュレートします。詳細:ユーザー定義関数 .
ここでの 1 つの問題は、リターンが -100% 未満の場合に失敗することです。これらが予想されない場合は問題ありません。それ以外の場合は、<100% から -100% の値を設定する必要があります。
その後、この実際の収益を使用して、必要に応じて年間収益を得ることができます。
2。 CLR でカスタム集計を定義します:
オンライン ブック を参照してください。 .
CLR カスタム関数を作成し、これをクエリで使用する集計にリンクできます。これはより多くの作業であり、サーバーで CLR を有効にする必要がありますが、完了したら必要なだけ使用できます。