Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Tính toán lợi nhuận được liên kết hình học trong SQL SERVER 2008

Bạn có hai tùy chọn để tải một sản phẩm trong SQL Server.

1. Mô phỏng bằng cách sử dụng nhật ký và số mũ:

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;

Điều này sử dụng nhật ký và số mũ để mô phỏng một phép tính sản phẩm. Thông tin thêm: Các chức năng do người dùng xác định .

Một vấn đề ở đây là nó sẽ không trả lại được <-100%. Nếu bạn không mong đợi những điều này thì tốt, nếu không, bạn sẽ cần đặt bất kỳ giá trị nào <100% thành -100%.

Sau đó, bạn có thể sử dụng lợi tức thực tế này để nhận được lợi tức hàng năm theo yêu cầu.

2. Xác định tổng hợp tùy chỉnh với CLR:

Xem Sách Trực tuyến .

Bạn có thể tạo một hàm tùy chỉnh CLR và sau đó liên kết tổng hợp này để sử dụng trong các truy vấn của mình. Đây là công việc nhiều hơn và bạn sẽ phải bật CLR trên máy chủ của mình, nhưng sau khi hoàn thành, bạn có thể sử dụng nó nhiều như cần thiết.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để thiết kế một truy vấn đệ quy SQL?

  2. Chọn cơ sở dữ liệu chỉ chứa bảng cụ thể

  3. CHỌN từ dấu phẩy thứ 3 trong chuỗi

  4. SQL Server - Hợp nhất các bảng lớn mà không khóa dữ liệu

  5. SSIS:Không thể chèn vào cột chỉ đọc <Tên cột>