Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Изчисляване на геометрично свързани връщания в SQL SERVER 2008

Имате две опции за получаване на продукт в SQL Server.

1. Симулирайте с помощта на дневници и експоненти:

SQL Fiddle

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;

Това използва регистрационни файлове и експоненти за симулиране на изчисление на продукт. Повече информация:Потребителски дефинирани функции .

Единственият проблем тук е, че ще се провали за възвръщаемост <-100%. Ако не очаквате такива, всичко е наред, в противен случай ще трябва да зададете стойности <100% до -100%.

След това можете да използвате тази действителна възвръщаемост, за да получите годишна възвръщаемост според изискванията.

2. Дефинирайте персонализиран агрегат с CLR:

Вижте Книги онлайн .

Можете да създадете CLR персонализирана функция и след това да свържете това като агрегат за използване във вашите заявки. Това е повече работа и ще трябва да активирате CLR на сървъра си, но след като това стане, можете да го използвате толкова, колкото е необходимо.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL:Реално транспониране

  2. Транспонираща таблица

  3. вмъкване на елементи от listbox в база данни на sql сървър

  4. Разлика между функции с таблично стойности с множество оператори и вградени функции с таблично стойности в SQL Server

  5. Как да преименувате база данни на SQL сървър с помощта на T-SQL