尝试获取201405期间开放的所有变更的[编号]和[花费的时间总和]。
我能想到的开放的最佳定义是: - 在[MonthPeriod]之前或期间记录的更改,在[MonthPeriod]期间或之后关闭的更改
SELECT
[Measures].[Sum of Time Spent] ON COLUMNS
,
[FactChange].[Number].[Number] ON ROWS
FROM
[Change Management]
WHERE
(FILTER(
[DimLoggedDate].[MonthPeriod].[MonthPeriod]
,[DimLoggedDate].[MonthPeriod].MEMBERVALUE <= 201405
)
,
FILTER(
[DimClosedDate].[MonthPeriod].[MonthPeriod]
,[DimClosedDate].[MonthPeriod].MEMBERVALUE >= 201405
))
上面的查询返回一个包含所有数字的列表,当WHERE子句中的过滤器不适用时,该值为空值。我想删除NULL项。
因为查询返回所有数字,我想知道这是否是解决问题的最有效查询。应用NonEmpty()会删除数字,但由于枚举了所有更改,这不会给系统带来更多压力吗?
答案 0 :(得分:0)
只需在on Rows子句中添加“Non empty”即可:
...
non empty [FactChange].[Number].[Number] on Rows
...