将XLS公式转换为季度/年度的SQL返回数据

时间:2014-12-30 00:57:37

标签: sql tsql

需要您帮助自动生成一个在xls中手动创建的报告

我已经自动生成了报告的数据,即每月产生的回报。

ROW in XLS     DATE     RETURN
B75             1/31/2014   -0.5%
B76             2/28/2014   1.36%
B77             3/31/2014   1.4%
B78             4/30/2014   1.00%
B79             5/31/2014   3.76%
B80             6/30/2014   2.43%
B81             7/31/2014   1.42%
B82             8/31/2014   0.61%
B83             9/30/2014   -2.61%

每季度每季度都会扩展这些数据。请在报告中建议计算以下内容。 目前该报告有一个公式

  1. 季度#返回 - 如果报告是针对Q3运行的,那么使用公式显示Q3的回报 = PRODUCT(1 + B81:B83)-1- 其中B81和B83是行 一种选择是使用查询来返回数据 或者在xls中有一个宏,它将占用该季度的运行日期并获取正确的值

  2. 3年回归 = PRODUCT(1 + B48:B83)^(12 / COUNT(B48:B83)) - 1

  3. 12个月返回 - 此解决方案与季度解决方案相同 = PRODUCT(1 + B72:B83)-1

1 个答案:

答案 0 :(得分:0)

我找到了解决3问题的方法,我需要返回年度回报

SELECT datepart(yyyy,price_date)as [year],EXP(             和(             IIF(ABS(返程)= 0,0,LOG(ABS(返程)))))*             IIF(民(ABS(返程))= 0,0,1)*             (             1- 2 *(             总和(IIf(返回> = 0,0,1))%2             ))AS P FROM @returnTable WHERE GROUP BY datepart(yyyy,price_date)

在上面的查询中

SQL语句,包含三个部分(乘数)。 第一个和第二个能够处理正数和零。添加第三个乘数以通过计数负数来处理符号,然后将其除以模2并从1中减去加倍的结果值。简单来说,它为偶数计数返回1,为所有负数的奇数计数返回-1,如果有的话。

如何获得季度和3年回报的任何指示。谢谢帮助