我们有一个具有以下值的表:
ItemName Qty位日期
Item1 100 1/1/2011
Item2 150 1/5/2011
Item3 200 1/14/2011
Item4 250 1/20/2011
Item5 1000 2/1/2011
在MDX查询中,我们需要根据日期范围过滤数据。假设我们需要获取日期范围为01/01/2011至01/31/2011的项目及其数量,则使用以下MDX查询:
SELECT 
   NON Empty 
      {[Final Report View For Scorecards].[F Bit Date].Children} ON ROWS, 
   NON Empty 
      {[Measures].[Qty]} ON COLUMNS 
FROM 
  ( 
  SELECT 
     ( 
    {[Final Report View For Scorecards].[F Bit Date].&[2011-01-01T00:00:00] : 
     [Final Report View For Scorecards].[F Bit Date].&[2011-01-31T00:00:00]} 
     ) ON COLUMNS 
  FROM [FinalReportView] 
  )在这里,当FromDate和ToDate参数作为01/01/2011和01/20/2011传递时,将正确检索项目1至4及其各自的qty's。但是当FromDate和ToDate作为01/01/2011和01/31/2011 (或) 01/01/2011和01/19/2011通过时,它甚至返回错误的Item5值。也就是说,只有当表中可用的确切日期作为参数传递时,它才返回正确的结果。但是,当传递表中不可用的日期时,将返回整个数据集。
当使用“过滤器”时,它是相同的。
对这个问题有什么建议吗?
发布于 2013-09-18 12:23:53
如果使用不存在的成员名称,则(如果已将维度的MdxMissingMemberMode配置为等效于Ignore的默认设置),则Analysis将无效成员名转换为NULL。range运算符:将null解释为无界的,也就是说,如果在范围的右侧使用null,它的意思是“到级别的最后一个成员”,而在:的左侧,它的意思是“来自级别的第一个成员”。
你能做些什么来解决这个问题:
https://stackoverflow.com/questions/18871578
复制相似问题