如何将当前年份的标志设置为 OLAP 多维数据集中的计算列?
How to set a flag of current year as a computed column in OLAP cube?
我想要在 MDX 中:
-- T-SQL
SELECT
IIF(cal.CalendarYear = YEAR(GETDATE()), 1, 0) AS ComputedColumn
FROM dim.Application app
JOIN dim.Calendar cal ON cal.DateID = app.ApplicationDateID
我试过 MDX:
SELECT IIF(ISEMPTY({[Dimension].[Application].[ApplicationDateID]}), 0, 1) ON 1
FROM [DWH OLAP]
WHERE StrToMember("[Calendar].[CalendarYear].&[("+Format(now(),'yyyy')+")]";
这会引发解析器错误。
Query (3, 76) Parser: The syntax for ';' is incorrect. (SELECT
IIF(ISEMPTY({[Dimension].[Application].[ApplicationDateID]}), 0, 1) ON
1 FROM [DWH OLAP] WHERE
StrToMember("[Calendar].[CalendarYear].&[("+Format(now(),'yyyy')+")]";
我想将该列用作 Power BI 报表的筛选标志。
帮助 MDX 将不胜感激。
您始终需要使用 0 维度启动 MDX 脚本 - 否则它不是有效的 MDX。这应该是有效的:
SELECT
IIF(ISEMPTY({[Dimension].[Application].[ApplicationDateID]}), 0, 1) ON 0 //<<<< 0
FROM [DWH OLAP]
WHERE
StrToMember("[Calendar].[CalendarYear].&[("+Format(now(),'yyyy')+")]"; //<<experiment with or without the semi-colon it is good practise to include but not mandatory
我想要在 MDX 中:
-- T-SQL
SELECT
IIF(cal.CalendarYear = YEAR(GETDATE()), 1, 0) AS ComputedColumn
FROM dim.Application app
JOIN dim.Calendar cal ON cal.DateID = app.ApplicationDateID
我试过 MDX:
SELECT IIF(ISEMPTY({[Dimension].[Application].[ApplicationDateID]}), 0, 1) ON 1
FROM [DWH OLAP]
WHERE StrToMember("[Calendar].[CalendarYear].&[("+Format(now(),'yyyy')+")]";
这会引发解析器错误。
Query (3, 76) Parser: The syntax for ';' is incorrect. (SELECT IIF(ISEMPTY({[Dimension].[Application].[ApplicationDateID]}), 0, 1) ON 1 FROM [DWH OLAP] WHERE StrToMember("[Calendar].[CalendarYear].&[("+Format(now(),'yyyy')+")]";
我想将该列用作 Power BI 报表的筛选标志。 帮助 MDX 将不胜感激。
您始终需要使用 0 维度启动 MDX 脚本 - 否则它不是有效的 MDX。这应该是有效的:
SELECT
IIF(ISEMPTY({[Dimension].[Application].[ApplicationDateID]}), 0, 1) ON 0 //<<<< 0
FROM [DWH OLAP]
WHERE
StrToMember("[Calendar].[CalendarYear].&[("+Format(now(),'yyyy')+")]"; //<<experiment with or without the semi-colon it is good practise to include but not mandatory