ssas - MDX:如何根据top count得到上一期?
问题描述
我必须计算出今年的前 10 名品牌,然后得到与去年相同的数字……但我发现这有点棘手。
我为今年迄今为止排名前 10 位的品牌提供了以下设置。
我的日期是一个参数(月-年),到目前为止一切正常。
filter(TopCount(
([10 - Brand].[Brand].Allmembers) * {STRTOMEMBER(@DATE)}
,10,
[Measures].[Act YTD]
), [Measures].[Act YTD] <> null)
但是现在我必须使用这一套并获得上一年的数据。
预期的结果是在同一个查询中获得今年和之后的前 10 名,去年的数字:
Year | Quarter | Month | Brand | Act YTD
2019 | 20193 | Aug 2019 | BR01 | 150
2019 | 20193 | Aug 2019 | BR02 | 250
2019 | 20193 | Aug 2019 | BR03 | 350
2019 | 20193 | Aug 2019 | BR04 | 450
2019 | 20193 | Aug 2019 | BR05 | 550
2019 | 20193 | Aug 2019 | BR06 | 650
2019 | 20193 | Aug 2019 | BR07 | 750
2019 | 20193 | Aug 2019 | BR08 | 850
2019 | 20193 | Aug 2019 | BR09 | 950
2019 | 20193 | Aug 2019 | BR10 | 1150
2018 | 20183 | Aug 2018 | BR01 | 100
2018 | 20183 | Aug 2018 | BR02 | 200
2018 | 20183 | Aug 2018 | BR03 | 300
2018 | 20183 | Aug 2018 | BR04 | 400
2018 | 20183 | Aug 2018 | BR05 | 500
2018 | 20183 | Aug 2018 | BR06 | 600
2018 | 20183 | Aug 2018 | BR07 | 700
2018 | 20183 | Aug 2018 | BR08 | 800
2018 | 20183 | Aug 2018 | BR09 | 900
2018 | 20183 | Aug 2018 | BR10 | 1000
我需要指导:)
解决方案
我找到了解决方案。
现在我将它们显示为列,而不是按行显示结果。
由于行分组和列分组,我不得不重新设计报告。
这样,我可以根据今年的日期创建前 10 组并获得 Y-1 度量。
Year | Quarter | Month | Brand | Act YTD | Act YTD -1 |
2019 | 20193 | Aug 2019 | BR01 | 150 | 100 |
2019 | 20193 | Aug 2019 | BR02 | 250 | 200 |
2019 | 20193 | Aug 2019 | BR03 | 350 | 300 |
2019 | 20193 | Aug 2019 | BR04 | 450 | 400 |
2019 | 20193 | Aug 2019 | BR05 | 550 | 500 |
2019 | 20193 | Aug 2019 | BR06 | 650 | 600 |
2019 | 20193 | Aug 2019 | BR07 | 750 | 700 |
2019 | 20193 | Aug 2019 | BR08 | 850 | 800 |
2019 | 20193 | Aug 2019 | BR09 | 950 | 900 |
2019 | 20193 | Aug 2019 | BR10 | 1150 | 1000 |
推荐阅读
- sql-server - 引用从 SELECT 生成的 SQL 列
- asp.net - Azure - 上传的 MVC 项目返回 404
- c++ - c++中的卷积实现
- regex - 使用 TCL 识别列表中的大括号和多个实例
- ruby - 如何删除一个 gem 的多个副本?
- python - 如何使用乌龟将输入键绑定到函数
- python - 关于将日期导出为日期的 xlsxWriter 问题
- react-bootstrap-table - 尝试呈现 react-bootstrap-table TableHeaderColumn 时无法读取未定义的属性“sortFunc”
- node.js - 开玩笑地模拟“fs”模块
- c# - 如何将作用域区域(管理器)暴露给 ViewModel