MDX查询缺少分区的结果-表格2012

MDX查询缺少分区的结果-表格2012,mdx,tabular,Mdx,Tabular,更新:解决方案是在数据库级别而不是分区级别执行完整的进程 我试图通过查询表模型来理解我观察到的行为。我按季度划分分区,因此当我在本季度初构建新的“当前季度”分区时,用于包含2016-Q4的分区被2017-Q1覆盖。然后,当我对2016-Q4的日期维度上的表格模型过滤运行MDX查询时,它没有像我预期的那样返回任何内容,而是返回了最旧分区2014-Q1的数据。这就像它决定返回该维度的“第一条记录”,而不是不返回任何数据(在本例中,所有日期均为2014年1月7日)。我筛选的其他维度仍按预期执行 有人知

更新:解决方案是在数据库级别而不是分区级别执行完整的进程

我试图通过查询表模型来理解我观察到的行为。我按季度划分分区,因此当我在本季度初构建新的“当前季度”分区时,用于包含2016-Q4的分区被2017-Q1覆盖。然后,当我对2016-Q4的日期维度上的表格模型过滤运行MDX查询时,它没有像我预期的那样返回任何内容,而是返回了最旧分区2014-Q1的数据。这就像它决定返回该维度的“第一条记录”,而不是不返回任何数据(在本例中,所有日期均为2014年1月7日)。我筛选的其他维度仍按预期执行

有人知道它为什么会这样吗?仅供参考,我已尝试以几种不同的方式重组我的MDX声明:

SELECT 
NON EMPTY { [Measures].[Measure1]} ON COLUMNS, 
NON EMPTY { ([Dimension].[Dimension1])} DIMENSION PROPERTIES member_caption, member_unique_name ON ROWS 
FROM [Model] WHERE ([Dimension].[Dimension2].&[Value], [DateDimension].[DateDimension].&[Value1] : [DateDimension].[DateDimension].&[Value2])

编辑:添加了实际MDX的示例

SELECT 
NON EMPTY { [Measures].[ConvertedNetRevenue], 
[Measures].[LoadConvertedNetRevenue], 
[Measures].[OrderConvertedNetRevenue], 
[Measures].[TotalOrderBrokerageCount], 
[Measures].[TotalLoadBrokerageCount]   
} ON COLUMNS, 
NON EMPTY { 
( 
except([BrokerageQuery].[KeyBranch].members,[BrokerageQuery].[KeyBranch].[all]),
except([BrokerageQuery].[LoadNumber].members,[BrokerageQuery].[LoadNumber].[all]),
except([BrokerageQuery].[CustomerOrderNumber].members,[BrokerageQuery].[CustomerOrderNumber].[all]),
except([BrokerageQuery].[BranchName].members,[BrokerageQuery].[BranchName].[all]),
except([BrokerageQuery].[BranchCode].members,[BrokerageQuery].[BranchCode].[all]),
except([BrokerageQuery].[BranchRoleDescription].members,[BrokerageQuery].[BranchRoleDescription].[all]),
except([BrokerageQuery].[ModeDescription].members,[BrokerageQuery].[ModeDescription].[all]),
except([BrokerageQuery].[ServiceTypeDescription].members,[BrokerageQuery].[ServiceTypeDescription].[all]),
except([BrokerageQuery].[SystemDisplayName].members,[BrokerageQuery].[SystemDisplayName].[all]),
except([BrokerageQuery].[IsPartialFinLock].members,[BrokerageQuery].[IsPartialFinLock].[all]),
except([BrokerageQuery].[KeyDate_Financial].members,[BrokerageQuery].[KeyDate_Financial].[all])
) 
} DIMENSION PROPERTIES member_caption, member_unique_name ON ROWS 
FROM ( SELECT 
( 
{ 
[dimCurrency].[CurrencyCode].&[USD] 
} 
) ON COLUMNS 
FROM ( SELECT 
( 
{ 
{ 
[BrokerageQuery].[KeyBranch].[10279]
} 
} 
) ON COLUMNS 
FROM ( SELECT 
( 
[BrokerageQuery].[KeyDate_Financial].&[20161106] : 
[BrokerageQuery].[KeyDate_Financial].&[20161106] 
) ON COLUMNS 
FROM [Brokerage])))

我们不需要单独处理分区(在每个季度开始重新分区时),而是需要进行数据库级的完整处理。

您可以逐字记录实际的MDX查询吗?我假设你所拥有的不是真实的,因为上面写着Value1?当然,用实际的MDX更新。我怀疑这不一定是MDX的问题,而是表格如何处理“丢失”的数据,这有意义吗?如果只运行查询的以下部分,它会返回什么?我正在检查日期是否存在。在[Brokerage]的列上选择([BrokerageQuery]。[KeyDate_Financial]和[20161106]:[BrokerageQuery]。[KeyDate_Financial]和[20161106])您是否创建了新的2017-Q1分区?或者您只是更改了2016-Q4分区的SQL查询以检索2017-Q1数据?您是否处理了表、分区或模型?您是否在SSMS或SSDT中对此进行了更改?运行查询将返回20140701的结果。对于分区,我更改了SQL查询以检索2017-Q1的数据。未添加新分区。我处理单个分区,而不是表或模型。对SQL查询(这是一个存储过程)的更改是通过在模型本身的分区管理器中硬编码的参数来完成的,这些参数表示从今天日期偏移的季度数。所以分区1将始终是当前季度。分区2将始终是当前季度减去1,依此类推。
SELECT 
NON EMPTY { [Measures].[ConvertedNetRevenue], 
[Measures].[LoadConvertedNetRevenue], 
[Measures].[OrderConvertedNetRevenue], 
[Measures].[TotalOrderBrokerageCount], 
[Measures].[TotalLoadBrokerageCount]   
} ON COLUMNS, 
NON EMPTY { 
( 
except([BrokerageQuery].[KeyBranch].members,[BrokerageQuery].[KeyBranch].[all]),
except([BrokerageQuery].[LoadNumber].members,[BrokerageQuery].[LoadNumber].[all]),
except([BrokerageQuery].[CustomerOrderNumber].members,[BrokerageQuery].[CustomerOrderNumber].[all]),
except([BrokerageQuery].[BranchName].members,[BrokerageQuery].[BranchName].[all]),
except([BrokerageQuery].[BranchCode].members,[BrokerageQuery].[BranchCode].[all]),
except([BrokerageQuery].[BranchRoleDescription].members,[BrokerageQuery].[BranchRoleDescription].[all]),
except([BrokerageQuery].[ModeDescription].members,[BrokerageQuery].[ModeDescription].[all]),
except([BrokerageQuery].[ServiceTypeDescription].members,[BrokerageQuery].[ServiceTypeDescription].[all]),
except([BrokerageQuery].[SystemDisplayName].members,[BrokerageQuery].[SystemDisplayName].[all]),
except([BrokerageQuery].[IsPartialFinLock].members,[BrokerageQuery].[IsPartialFinLock].[all]),
except([BrokerageQuery].[KeyDate_Financial].members,[BrokerageQuery].[KeyDate_Financial].[all])
) 
} DIMENSION PROPERTIES member_caption, member_unique_name ON ROWS 
FROM ( SELECT 
( 
{ 
[dimCurrency].[CurrencyCode].&[USD] 
} 
) ON COLUMNS 
FROM ( SELECT 
( 
{ 
{ 
[BrokerageQuery].[KeyBranch].[10279]
} 
} 
) ON COLUMNS 
FROM ( SELECT 
( 
[BrokerageQuery].[KeyDate_Financial].&[20161106] : 
[BrokerageQuery].[KeyDate_Financial].&[20161106] 
) ON COLUMNS 
FROM [Brokerage])))