【发布时间】:2019-06-05 20:59:14
【问题描述】:
我需要按日期汇总所有开放机会的总金额。每条记录都附有一个 [valid from] 和一个 [valid to] 日期。当数据库中的机会得到更新时,会添加一个新行,其中包含 [valid from] date = today 和 [valid to] date = end of time (12/31/2100)。上一行的 [valid to] 日期获取昨天的日期。
推理:因为每天可以多次更改机会,所以我们只关心每天超过 11:59:59 阈值的版本。当机会发生变化时,之前的版本仅在前一天结束之前有效,因此它的 [valid to] 字段获取前一天的日期。
当按大于日期的单位进行细分时,我需要当时机会的最后一个正确版本。例如,1 月份的美元金额是 1 月 31 日 11:59:59 机会的最近美元价值的金额。
这是我的架构的简化版本:
这是一些示例数据:
Opp Number Dollars Opp Created Date Header Valid From Header Valid To
1 100 1/1/2019 1/1/2019 1/3/2019
1 50 1/1/2019 1/4/2019 1/5/2019
1 75 1/1/2019 1/6/2019 12/31/2100
2 200 1/3/2019 1/3/2019 1/4/2019
2 210 1/3/2019 1/5/2019 1/6/2019
2 250 1/3/2019 1/7/2019 12/31/2100
鉴于此示例数据集,数据透视表应如下所示:
Dates Sum of Dollars
1/1/2019 100
1/2/2019 100
1/3/2019 300
1/4/2019 250
1/5/2019 260
1/6/2019 285
1/7/2019 325
1/8/2019 325
...
1/31/2019 325
January 325
我尝试了几种方法,但无济于事。以下是我尝试过的参考资料:
https://www.sqlbi.com/wp-content/uploads/DAX-Query-Plans.pdf
https://community.powerbi.com/t5/Desktop/DAX-formula-for-value-at-point-in-time-dynamic/td-p/601977
- https://www.sqlbi.com/articles/analyzing-events-with-a-duration-in-dax/
我能够让它在 dax studio 中按预期工作,但我无法将其转化为度量。
EVALUATE
ADDCOLUMNS (
VALUES ( 'DIM Date'[Date]),
"Open Orders",
SUMX (
FILTER (
GENERATE (
SUMMARIZE (
'FACT Opportunity',
'FACT Opportunity'[header valid from],
'FACT Opportunity'[header valid to],
"Rows",
DISTINCTCOUNT ( 'FACT Opportunity'[Opp Number])
),
DATESBETWEEN (
'DIM Date'[Date],
'FACT Opportunity'[header valid from],
'FACT Opportunity'[header valid to]
)
),
'DIM Date'[Date] = EARLIER ('DIM Date'[Date])
),
[Rows]
)
)
【问题讨论】:
标签: sql-server ssas dax data-analysis tabular