小编chr*_*y p的帖子

使用R嵌入在SQL中的累积量度

原谅我,我是R的新手,我只是在看我们SQL 2016环境中的选项.

我们目前要求提供累积的绩效回报.下面是一个示例数据集:

FundID  Date        FundReturn
ABC     1987-10-31  0
ABC     1987-11-30  -9.28669
ABC     1987-12-31  3.08304
ABC     1988-01-31  -3.00125
ABC     1988-02-29  0.61238
ABC     1988-03-31  4.29258
ABC     1988-04-30  0.13697
ABC     1988-05-31  2.57786
ABC     1988-06-30  2.36947
ABC     1988-07-31  0.57114
ABC     1988-08-31  -1.21550
ABC     1988-09-30  7.09027
ABC     1988-10-31  3.45807
ABC     1988-11-30  1.12679
Run Code Online (Sandbox Code Playgroud)

我们需要获取此数据集并对其应用累积性能返回度量,以便datset如下所示:

FundID  Date        FundReturn      FundReturnCumu100   FundReturnCumu0
ABC     1987-10-31  0               1                   0
ABC     1987-11-30  -9.28669        0.9071331           -0.0928669
ABC     1987-12-31  3.08304         0.935100376         -0.064899624
ABC     1988-01-31  -3.00125        0.907035676         -0.092964324
ABC     1988-02-29  0.61238         0.912590181         -0.087409819
ABC …
Run Code Online (Sandbox Code Playgroud)

sql sql-server r

18
推荐指数
2
解决办法
256
查看次数

DateDiff年份为小数

我有两个日期,我想找到它们之间的年数,但是我需要将值显示为两位小数.我尝试过以下但是我总是得到一个0的值,因为我的所有日​​期都没有涵盖整整一年:

DATEDIFF(yy, @EndDateTime, i.mat_exp_dte)
Run Code Online (Sandbox Code Playgroud)

然后我尝试找到两者之间的天数然后除以365,但这仍然返回0:

DATEDIFF(dd, @EndDateTime, i.mat_exp_dte)/365
Run Code Online (Sandbox Code Playgroud)

我现在很困惑如何计算这个.我需要将DataDiff转换为不同的数据类型吗?

t-sql datediff sql-server-2008

7
推荐指数
1
解决办法
1万
查看次数

从tsql汇总中的子总计/总计中删除空值

我目前有一个脚本,下面使用汇总聚合一些数据:

SELECT 
        CASE 
            WHEN GROUPING(Custodian) = 1 
                THEN 'Grand Total'
            WHEN GROUPING(PortfolioID) = 1
                THEN Custodian+''+'Total'
            ELSE Custodian

        END AS Custodian

    ,   PortfolioID
    ,   PortfolioBaseCCY
    ,   [Date]
    ,   SUM(AmountTotalBaseEquiv) AS AmountTotalBaseEquiv
    ,   ExchangeRate
    ,   AmountTotalBaseEquivUSD
    ,   PortfolioNAVUSD
    ,   SUM(TotalCashPctNAV) AS TotalCashPctNAV 

FROM @ResultSet
WHERE TotalCashPctNAV > 5
GROUP BY Custodian
    ,   PortfolioID
    ,   PortfolioBaseCCY
    ,   [Date]
    ,   AmountTotalBaseEquiv
    ,   ExchangeRate
    ,   AmountTotalBaseEquivUSD
    ,   PortfolioNAVUSD 
    ,   TotalCashPctNAV WITH ROLLUP

HAVING GROUPING_ID(Custodian
    ,   PortfolioID
    ,   PortfolioBaseCCY
    ,   [Date]
    ,   AmountTotalBaseEquiv
    ,   ExchangeRate …
Run Code Online (Sandbox Code Playgroud)

t-sql null rollup

5
推荐指数
1
解决办法
2341
查看次数

GROUP BY with CASE - tsql

我有一个选择,如下所示:

SELECT 
        ReportingDate
    ,   PortfolioID
    ,   PortfolioNme

    ,   CASE
            WHEN @ReportType = 'GeoCountry' THEN Infoportal.dbo.fn_Generic_ProperCase(Country)
            WHEN @ReportType = 'GeoEquity'  THEN Region
        END                 AS Country

    ,   RANK() OVER (PARTITION BY PortfolioID ORDER BY SUM(Percentage) DESC, CASE WHEN @ReportType = 'GeoCountry' THEN Country WHEN @ReportType = 'GeoEquity' THEN Region END) AS [Rank]
    ,   SUM(Percentage)     AS [Weight]

FROM @Worktable as WT

WHERE WT.IssueType1 <> '010' AND WT.IssueType2 <> '055'

GROUP BY    WT.ReportingDate
        ,   WT.PortfolioID
        ,   WT.PortfolioNme
        ,   CASE
                WHEN @ReportType = 'GeoCountry' THEN …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server group-by case common-table-expression

4
推荐指数
1
解决办法
1万
查看次数