我已经构建了一个带有一些计算的多维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;
此外,当选择一个日期时,浏览器会显示正确的数字。
有没有办法修改计算成员才能在浏览器中正常工作。我在电源视图报告中显示数据,但我得到的是我在浏览器中看到的错误数字。
当我只使用一个日期成员时,浏览器生成的代码下面:
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
答案 0 :(得分:1)
问题是,当您在过滤器中有两个日期时,范围([TimeDim Transactions]
维度)未正确设置。但是,在单个日期的情况下,范围设置正确,因此答案匹配。
选择一个日期
请参阅与切片器相关的子句。它是[TimeDim Transactions].[Year - Quarter - Month - Date].[Date].&[2014-12-05T00:00:00] )
选择两个日期
切片器变为: [TimeDim Transactions]。[年 - 季 - 月 - 日] .CurrentMember
请注意,子选择不会设置上下文。因此,当您说要按[TimeDim Transactions].[Year - Quarter - Month - Date].CurrentMember
进行过滤时,您实际上并未进行过滤,因为缺少范围的当前成员是[All]
成员。这就是为什么你有奇怪的大数字的原因。
要解决此问题,请尝试在轴中使用日期,而不是使用切片器,以便选择范围。
,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