DAX定制财务期

时间:2017-11-14 15:27:25

标签: sql-server ssas dax ssas-tabular

我有一个SSAS表格模型,我试图使用DAX表达式计算年度年度指标。我有一个名为fact_transaction的表和一个名为dimdate的表,它与我正在尝试的计算相关。 dimdate表具有日期键,日期字段,年份字段,月份字段,期间字段和季度字段。由于需要使用财务期而非数月,SAMEPERIODLASTYEAR将无法用于我的计算。

财务期间与一年中的月份不直接对应,长度可能最多相差2天。有没有办法计算这个而不会太复杂?在SQL查询中,我只是将它与[Year] = [YEAR] -1和Period = Period(以及关系中使用的各种帐户字段)连接起来。不太确定如何在DAX中执行此操作。

1 个答案:

答案 0 :(得分:0)

是的,您应该可以在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]))