Sql server DAX时间智能功能-性能数据计算

Sql server DAX时间智能功能-性能数据计算,sql-server,visual-studio,ssas,dax,sql-server-data-tools,Sql Server,Visual Studio,Ssas,Dax,Sql Server Data Tools,我试图在Visual Studio 2017的AnalysisServices中的表格模型中使用DAX时间智能函数 我有以下计算要求: 日期(日期时间) 月度绩效(百分比) 帐目 对于每个客户,我们要计算年初至今、1年、2年、3年、5年的绩效指标 使用以下性能公式: Perf for 3M = (1 + CurrentMonthPerf/100)*(1 + PriorMonth/100)*(1 + PriorPriorMonth/100) - 1 Perf for 1Y = (1 + Curr

我试图在Visual Studio 2017的AnalysisServices中的表格模型中使用DAX时间智能函数

我有以下计算要求:

  • 日期(日期时间)
  • 月度绩效(百分比)
  • 帐目
  • 对于每个客户,我们要计算年初至今、1年、2年、3年、5年的绩效指标

    使用以下性能公式:

    Perf for 3M =
    (1 + CurrentMonthPerf/100)*(1 + PriorMonth/100)*(1 + PriorPriorMonth/100) - 1
    
    Perf for 1Y =
    (1 + CurrentMonthPerf/100)*(1 + {1MonthAgoPerf}/100)*...* (1 + {12MonthsAgoPerf}/100) - 1
    
    YTD的性能=与上述计算相同,但仅适用于从1月到当前表格单元格的月份。每行将计算循环中的乘积: (1+X)…(1+Y))-1

    我不熟悉DAX语法,因此不确定如何在SSDT 2017中使用DAX执行此计算


    请告知我如何执行更复杂的日期计算。

    我在自己的报告中编写了大致如下的月度回报链接(假设我有月度回报时间序列):

    性能=
    VAR起始日期=
    变量结束日期=
    返回-1+
    PRODUCTX(
    过滤器(全部(表1[日期]),
    表1[日期]起始日期
    ),
    1+表1[每月一次]
    )
    
    基本上,您在过滤表上使用产品,而不是编写循环



    这是一个高度简化的表单,我没有定义开始和结束日期的定义,假设您每个月只有一个返回值,但它应该可以帮助您指出正确的方向。

    我在自己的报告中编写了每月的返回链接,大致如下所示(假设我有每月的返回时间序列):

    性能=
    VAR起始日期=
    变量结束日期=
    返回-1+
    PRODUCTX(
    过滤器(全部(表1[日期]),
    表1[日期]起始日期
    ),
    1+表1[每月一次]
    )
    
    基本上,您在过滤表上使用产品,而不是编写循环



    这是一个高度简化的表单,我没有定义开始和结束日期的定义,假设您每个月只有一个返回值,但它会帮助您找到正确的方向。

    谢谢您的帮助!谢谢你的帮助!
    Performance = 
    VAR StartDate = <...>
    VAR EndDate = <...>
    RETURN -1 +
    PRODUCTX(
        FILTER( ALL( Table1[Date] ),
            Table1[Date] <= EndDate &&
            Table1[Date] > StartDate
        ),
        1 + Table1[MonthReturn]
    )