首页 > 解决方案 > 所有年份的 DAX 总和,但不是当前年份

问题描述

我有一个 DAX 查询,我通过 SSRS 运行它以生成一个年度汇总结果集,其中包含多个分组依据、过滤器、度量等,但对于这个问题,我将使用简化版本。

它看起来像这样:

EVALUATE 
SUMMARIZECOLUMNS(
'Years'[Year],
'Currency'[CurrencyName],
"SalesAmount", [SalesAmount] 
)
2017, EUR, 1000000  
2018, EUR, 1000000  
2019, EUR, 1000000  
2020, EUR, 1000000  
2017, USD, 500000
2018, USD, 500000
2019, HKD, 1000000
2020, HKD, 1000000

到目前为止,这一切都很好。

但是,我对每种货币的总计有一个报告要求。但是,总数不应包括当前年份(如果需要,我可以从参数中传入)

为了复制当前基于 SQL 的报告已经做的事情,理想情况下,我还想按顺序向结果集中添加一个顺序,以便格式化报告。最终结果集如下所示:

1, 2017, EUR, 1000000  
2, 2018, EUR, 1000000  
3, 2019, EUR, 1000000  
4, Total, EUR, 4000000 
5, 2020, EUR, 1000000  

1, 2017, USD, 500000    
2, 2018, USD, 500000  
3, Total, USD, 1000000  

1, 2019, HKD, 1000000  
2, Total HKD, 1000000  
3, 2020, HKD, 1000000

执行此操作的 SQL 非常复杂,所以我想这在 DAX 中可能是不可能的,但是如果有人对这样的示例有任何建议,他们可以建议我不胜感激,

在此先感谢,

标签: reporting-servicesdaxbusiness-intelligence

解决方案


这将使您获得作为新计算表的总行数:

Totals =
VAR CurrYear =
    YEAR ( TODAY () )
RETURN
    SUMMARIZECOLUMNS (
        'Currency'[Currency],
        "SalesAmount", CALCULATE ( [SalesAmount], 'Years'[Year] < CurrYear ),
        "Index", CALCULATE ( COUNT ( 'Years'[Year] ), 'Years'[Year] < CurrYear ) + 1
    )

我敢打赌,您可以弄清楚如何将它与您已经拥有的表格结合起来,以获得您想要的组合表格。


推荐阅读