【问题标题】:DAX Custom Financial PeriodsDAX 自定义财务期间
【发布时间】:2018-04-27 14:53:01
【问题描述】:

我有一个 SSAS 表格模型,我正在尝试使用 DAX 表达式来计算年同比指标。我有一个名为 fact_transaction 的表和一个名为 dimdate 的表,它们与我正在尝试执行的计算相关。 dimdate 表具有日期键、日期字段、年份字段、月份字段、期间字段和季度字段。由于需要使用财务期间而不是月份,SAMEPERIODLASTYEAR 不适用于我的计算。

财务周期不直接对应一年中的月份,长度最多可以变化 2 天。有什么方法可以计算出这个而不会太复杂?在 SQL 查询中,我只需使用 [Year] = [YEAR] -1 和 Period = Period(以及关系中使用的各种帐户字段)将其连接到自身。不太确定如何在 DAX 中执行此操作。

【问题讨论】:

    标签: sql-server ssas dax ssas-tabular


    【解决方案1】:

    是的,您应该能够在 DAX 中使用过滤器执行非常类似的操作。如果没有更多细节,很难准确地写出你需要的东西,但不妨试试这样:

    YoY Metric =
    VAR CurrentYear = SELECTEDVALUE(DimDate[Year])
    VAR CurrentPeriod = SELECTEDVALUE(DimDate[Period])
    RETURN CALCULATE([Expression],
               FILTER(ALL(DimDate),
                   DimDate[Year] = CurrentYear - 1 &&
                   DimDate[Period] = CurrentPeriod))
    

    编辑

    如果SELECTEDVALUE 不可用,则像这样定义变量:

    VAR CurrentYear = IF(HASONEVALUE(DimDate[Year]), VALUES(DimDate[Year]))
    VAR CurrentPeriod = IF(HASONEVALUE(DimDate[Period]), VALUES(DimDate[Period]))
    

    【讨论】:

    • 当我尝试使用 SELECTEDVALUE 时,表达式未显示为有效,并返回错误。当我开始输入 SELECTEDVALUE 时,自动完成中显示的唯一内容是 ALLSELECTED 和 SELECTEDCOLUMNS。
    • @SGrzybowski 您必须拥有旧版本(这是一个较新的功能)。它相当于IF(HASONEVALUE(DimDate[Year]), DimDate[Year]),所以你可以使用它来代替。
    • 这是服务器上旧版本的 Analysis Services 还是旧版本的 Visual Studio?我正在使用 SQL Server Data Tools 2015 并且在连接到 SSMS 中的 Analysis Services 时,根据一般报告,SQL Server Analysis Services 的版本是 13.0.1742.0。
    • 我尝试使用 HASONEVALUE 函数导致错误。 YoY Metric:= VAR CurrentYear = IF(HASONEVALUE(DimDate[Year]), DimDate[Year]) VAR CurrentPeriod = IF(HASONEVALUE(DimDate[Period]), DimDate[Period]) RETURN CALCULATE(SUM(Fact_Transaction[gll_amount]), FILTER(ALL(DimDate), DimDate[Year] = CurrentYear - 1 && DimDate[Period] = CurrentPeriod))
    • @SGrzybowski 它在 Power BI 中可用,但我不确定还有哪些其他程序允许您使用它。我将使用等效表达式添加编辑。我在上面的评论中错过了一篇文章。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-01
    • 1970-01-01
    相关资源
    最近更新 更多