如何在我的时间维度中 MDX 查询最近 12 周?
How to MDX query for last 12 weeks in my time dimension?
我有很多关于 MDX 查询的问题,因为我刚开始使用 SQL 报表生成器学习 OLAP 和 SSRS 报表。
第一个问题是,能否请您给我 link 提供 MDX 查询教程的最佳网站..
其次,我已经部署了一个销售多维数据集。将参数传递给查询的最佳方式是什么?我的意思是如果我想在不使用参数的情况下自动查询过去 12 周的销售额(如果现在是第 30 周则自动生成,而不是显示第 18 周到第 30 周的数据,依此类推)。
这是我从设计器自动生成的查询:
SELECT NON EMPTY { [Measures].[Total Stick] } ON COLUMNS,
NON EMPTY
{
( [PALAPA Location].[LocationCode].[LocationCode].AllMembers * [PALAPA Fact Sales].[Year].[Year].AllMembers * [PALAPA Fact Sales].[Week].[Week].AllMembers )
} Dimension Properties MEMBER_CAPTION,
MEMBER_UNIQUE_NAME ON ROWS
FROM (
SELECT (
{ [Time_Dim].[Week].&[2015-06-21T00:00:00], [Time_Dim].[Week].&[2015-06-28T00:00:00], [Time_Dim].[Week].&[2015-07-05T00:00:00], [Time_Dim].[Week].&[2015-07-12T00:00:00], [Time_Dim].[Week].&[2015-07-19T00:00:00] } ) ON COLUMNS
FROM (
SELECT ( { [Time_Dim].[Year].&[2015-01-01T00:00:00] } ) ON COLUMNS
FROM [PALAPA_DSV]
)
)
WHERE ( [Time_Dim].[Year].&[2015-01-01T00:00:00], [Time_Dim].[Week].CurrentMember ) CELL Properties Value,
BACK_COLOR,
FORE_COLOR,
FORMATTED_VALUE,
FORMAT_STRING,
FONT_NAME,
FONT_SIZE,
FONT_FLAGS
第三个问题,我想使用此代码在 SQL 报表生成器参数(周维度)设置默认值:
=”[TP DIM CALENDAR].[Date].&[” + Format(CDate(Parameters!FromParameter.Value),”yyyy-MM-dd”) +
“T00:00:00]”
但是为什么当我 运行 报告时它不起作用?参数值为空..
感谢您的帮助!
请看一下这些mdx
函数
StrToMember
https://msdn.microsoft.com/en-us/library/ms146022.aspx
StrToSet
https://msdn.microsoft.com/en-us/library/ms144782.aspx
这些函数和其他几个 StrTo..
函数被广泛用于传递参数。
在您的示例中,您需要将整个字符串包装成这样:
strToMember(
"[TP DIM CALENDAR].[Date].&[" +
Format(CDate(Parameters!FromParameter.Value),"yyyy-MM-dd") +
"T00:00:00]"
)
在这里找到解决方案:
感谢您的帮助 whytheq :)
我有很多关于 MDX 查询的问题,因为我刚开始使用 SQL 报表生成器学习 OLAP 和 SSRS 报表。
第一个问题是,能否请您给我 link 提供 MDX 查询教程的最佳网站..
其次,我已经部署了一个销售多维数据集。将参数传递给查询的最佳方式是什么?我的意思是如果我想在不使用参数的情况下自动查询过去 12 周的销售额(如果现在是第 30 周则自动生成,而不是显示第 18 周到第 30 周的数据,依此类推)。 这是我从设计器自动生成的查询:
SELECT NON EMPTY { [Measures].[Total Stick] } ON COLUMNS,
NON EMPTY
{
( [PALAPA Location].[LocationCode].[LocationCode].AllMembers * [PALAPA Fact Sales].[Year].[Year].AllMembers * [PALAPA Fact Sales].[Week].[Week].AllMembers )
} Dimension Properties MEMBER_CAPTION,
MEMBER_UNIQUE_NAME ON ROWS
FROM (
SELECT (
{ [Time_Dim].[Week].&[2015-06-21T00:00:00], [Time_Dim].[Week].&[2015-06-28T00:00:00], [Time_Dim].[Week].&[2015-07-05T00:00:00], [Time_Dim].[Week].&[2015-07-12T00:00:00], [Time_Dim].[Week].&[2015-07-19T00:00:00] } ) ON COLUMNS
FROM (
SELECT ( { [Time_Dim].[Year].&[2015-01-01T00:00:00] } ) ON COLUMNS
FROM [PALAPA_DSV]
)
)
WHERE ( [Time_Dim].[Year].&[2015-01-01T00:00:00], [Time_Dim].[Week].CurrentMember ) CELL Properties Value,
BACK_COLOR,
FORE_COLOR,
FORMATTED_VALUE,
FORMAT_STRING,
FONT_NAME,
FONT_SIZE,
FONT_FLAGS
第三个问题,我想使用此代码在 SQL 报表生成器参数(周维度)设置默认值:
=”[TP DIM CALENDAR].[Date].&[” + Format(CDate(Parameters!FromParameter.Value),”yyyy-MM-dd”) + “T00:00:00]”
但是为什么当我 运行 报告时它不起作用?参数值为空..
感谢您的帮助!
请看一下这些mdx
函数
StrToMember
https://msdn.microsoft.com/en-us/library/ms146022.aspx
StrToSet
https://msdn.microsoft.com/en-us/library/ms144782.aspx
这些函数和其他几个 StrTo..
函数被广泛用于传递参数。
在您的示例中,您需要将整个字符串包装成这样:
strToMember(
"[TP DIM CALENDAR].[Date].&[" +
Format(CDate(Parameters!FromParameter.Value),"yyyy-MM-dd") +
"T00:00:00]"
)
在这里找到解决方案:
感谢您的帮助 whytheq :)