mdx查询与cube浏览器不一致
Mdx query incosistent with cube browser
我用一些计算构建了一个多维 SSAS
立方体。我有一个计算成员,我在其中使用 parallelperiod
函数根据以下代码计算上个月的值:
Sum
(
(EXISTING
[TimeDim Transactions].[Year - Quarter - Month - Date].[date].MEMBERS)
,(
ParallelPeriod
(
[TimeDim Transactions].[Year - Quarter - Month - Date].[month]
,1
,[TimeDim Transactions].[Year - Quarter - Month - Date].CurrentMember
)
,[Measures].[Net Amount]
)
)
当我 运行 以下查询时,它按预期工作。
SELECT
{
NetAmountSamePeriodLastMonth
,[Measures].[net amount]
} ON COLUMNS
,[Stores Dim].[Store Code].Children ON ROWS
FROM [SalesDW_v1]
WHERE
{
[TimeDim Transactions].[Year - Quarter - Month - Date].[Date].&[2014-12-04T00:00:00]
,[TimeDim Transactions].[Year - Quarter - Month - Date].[Date].&[2014-12-05T00:00:00]
};
但是当我浏览多维数据集以获取具有相同日期过滤器的相同数据时,它给出了错误的数字。从浏览器生成的 mdx 脚本是:
SELECT
NON EMPTY
{
[Measures].[Net Amount]
,[Measures].[NetAmountSamePeriodLastMonth]
} ON COLUMNS
,NON EMPTY
{[Stores Dim].[Store Code].[Store Code].ALLMEMBERS}
DIMENSION PROPERTIES
MEMBER_CAPTION
,MEMBER_UNIQUE_NAME
ON ROWS
FROM
(
SELECT
{
[TimeDim Transactions].[Year - Quarter - Month - Date].[Date].&[2014-12-04T00:00:00]
,[TimeDim Transactions].[Year - Quarter - Month - Date].[Date].&[2014-12-05T00:00:00]
} ON COLUMNS
FROM [SalesDW_v1]
)
WHERE
[TimeDim Transactions].[Year - Quarter - Month - Date].CurrentMember
CELL PROPERTIES
VALUE
,BACK_COLOR
,FORE_COLOR
,FORMATTED_VALUE
,FORMAT_STRING
,FONT_NAME
,FONT_SIZE
,FONT_FLAGS;
更多的东西,浏览器选择一个日期时显示正确的数字。
有没有办法修改计算成员以便在浏览器中正常工作。我在 Power View 报告中显示数据,但我得到的是我在浏览器中看到的错误数字。
下面是我只使用一个日期成员时浏览器生成的代码:
SELECT
NON EMPTY
{ [Measures].[Net Amount]
,[Measures].[NetAmountSamePeriodLastMonth]
}
ON COLUMNS
,NON EMPTY
{ ([Stores Dim].[Store Code].[Store Code].ALLMEMBERS ) }
DIMENSION PROPERTIES
MEMBER_CAPTION
,MEMBER_UNIQUE_NAME ON ROWS
FROM
(
SELECT (
{[TimeDim Transactions].[Year - Quarter - Month - Date].[Date].&[2014-12-05T00:00:00] }
) ON COLUMNS
FROM [SalesDW_v1]
)
WHERE ( [TimeDim Transactions].[Year - Quarter - Month - Date].[Date].&[2014-12-05T00:00:00] )
CELL PROPERTIES VALUE
, BACK_COLOR, FORE_COLOR
, FORMATTED_VALUE
, FORMAT_STRING
, FONT_NAME
, FONT_SIZE
, FONT_FLAGS
问题是当您在过滤器中有两个日期时,范围(对于 [TimeDim Transactions]
维度)没有正确设置。但是,在单个日期的情况下,范围设置正确,因此答案匹配。
当一个日期被 selected
参见与切片器相关的子句。是[TimeDim Transactions].[Year - Quarter - Month - Date].[Date].&[2014-12-05T00:00:00] )
当两个日期 selected
切片器变为:
[TimeDim 交易].[年 - 季 - 月 - 日].CurrentMember
请注意,子select 不会设置上下文。因此,当您说要按 [TimeDim Transactions].[Year - Quarter - Month - Date].CurrentMember
进行过滤时,您实际上根本没有进行过滤,因为没有作用域的当前成员是 [All]
成员。这就是为什么你有一个 大得离谱的数字 。
要解决此问题,请尝试在轴中添加日期,如下所示,而不是切片器,以便范围得到 selected。
,NON EMPTY
{[Stores Dim].[Store Code].[Store Code].ALLMEMBERS} *
{
[TimeDim Transactions].[Year - Quarter - Month - Date].[Date].&[2014-12-04T00:00:00]
,[TimeDim Transactions].[Year - Quarter - Month - Date].[Date].&[2014-12-05T00:00:00]
}
DIMENSION PROPERTIES
MEMBER_CAPTION
,MEMBER_UNIQUE_NAME
ON ROWS
我用一些计算构建了一个多维 SSAS
立方体。我有一个计算成员,我在其中使用 parallelperiod
函数根据以下代码计算上个月的值:
Sum
(
(EXISTING
[TimeDim Transactions].[Year - Quarter - Month - Date].[date].MEMBERS)
,(
ParallelPeriod
(
[TimeDim Transactions].[Year - Quarter - Month - Date].[month]
,1
,[TimeDim Transactions].[Year - Quarter - Month - Date].CurrentMember
)
,[Measures].[Net Amount]
)
)
当我 运行 以下查询时,它按预期工作。
SELECT
{
NetAmountSamePeriodLastMonth
,[Measures].[net amount]
} ON COLUMNS
,[Stores Dim].[Store Code].Children ON ROWS
FROM [SalesDW_v1]
WHERE
{
[TimeDim Transactions].[Year - Quarter - Month - Date].[Date].&[2014-12-04T00:00:00]
,[TimeDim Transactions].[Year - Quarter - Month - Date].[Date].&[2014-12-05T00:00:00]
};
但是当我浏览多维数据集以获取具有相同日期过滤器的相同数据时,它给出了错误的数字。从浏览器生成的 mdx 脚本是:
SELECT
NON EMPTY
{
[Measures].[Net Amount]
,[Measures].[NetAmountSamePeriodLastMonth]
} ON COLUMNS
,NON EMPTY
{[Stores Dim].[Store Code].[Store Code].ALLMEMBERS}
DIMENSION PROPERTIES
MEMBER_CAPTION
,MEMBER_UNIQUE_NAME
ON ROWS
FROM
(
SELECT
{
[TimeDim Transactions].[Year - Quarter - Month - Date].[Date].&[2014-12-04T00:00:00]
,[TimeDim Transactions].[Year - Quarter - Month - Date].[Date].&[2014-12-05T00:00:00]
} ON COLUMNS
FROM [SalesDW_v1]
)
WHERE
[TimeDim Transactions].[Year - Quarter - Month - Date].CurrentMember
CELL PROPERTIES
VALUE
,BACK_COLOR
,FORE_COLOR
,FORMATTED_VALUE
,FORMAT_STRING
,FONT_NAME
,FONT_SIZE
,FONT_FLAGS;
更多的东西,浏览器选择一个日期时显示正确的数字。
有没有办法修改计算成员以便在浏览器中正常工作。我在 Power View 报告中显示数据,但我得到的是我在浏览器中看到的错误数字。
下面是我只使用一个日期成员时浏览器生成的代码:
SELECT
NON EMPTY
{ [Measures].[Net Amount]
,[Measures].[NetAmountSamePeriodLastMonth]
}
ON COLUMNS
,NON EMPTY
{ ([Stores Dim].[Store Code].[Store Code].ALLMEMBERS ) }
DIMENSION PROPERTIES
MEMBER_CAPTION
,MEMBER_UNIQUE_NAME ON ROWS
FROM
(
SELECT (
{[TimeDim Transactions].[Year - Quarter - Month - Date].[Date].&[2014-12-05T00:00:00] }
) ON COLUMNS
FROM [SalesDW_v1]
)
WHERE ( [TimeDim Transactions].[Year - Quarter - Month - Date].[Date].&[2014-12-05T00:00:00] )
CELL PROPERTIES VALUE
, BACK_COLOR, FORE_COLOR
, FORMATTED_VALUE
, FORMAT_STRING
, FONT_NAME
, FONT_SIZE
, FONT_FLAGS
问题是当您在过滤器中有两个日期时,范围(对于 [TimeDim Transactions]
维度)没有正确设置。但是,在单个日期的情况下,范围设置正确,因此答案匹配。
当一个日期被 selected
参见与切片器相关的子句。是[TimeDim Transactions].[Year - Quarter - Month - Date].[Date].&[2014-12-05T00:00:00] )
当两个日期 selected
切片器变为: [TimeDim 交易].[年 - 季 - 月 - 日].CurrentMember
请注意,子select 不会设置上下文。因此,当您说要按 [TimeDim Transactions].[Year - Quarter - Month - Date].CurrentMember
进行过滤时,您实际上根本没有进行过滤,因为没有作用域的当前成员是 [All]
成员。这就是为什么你有一个 大得离谱的数字 。
要解决此问题,请尝试在轴中添加日期,如下所示,而不是切片器,以便范围得到 selected。
,NON EMPTY
{[Stores Dim].[Store Code].[Store Code].ALLMEMBERS} *
{
[TimeDim Transactions].[Year - Quarter - Month - Date].[Date].&[2014-12-04T00:00:00]
,[TimeDim Transactions].[Year - Quarter - Month - Date].[Date].&[2014-12-05T00:00:00]
}
DIMENSION PROPERTIES
MEMBER_CAPTION
,MEMBER_UNIQUE_NAME
ON ROWS