SSRS报告参数导致问题

时间:2019-03-14 05:34:39

标签: dax ssrs-2016

我遇到 SSRS报告参数的怪异问题。当前正在使用SSRS 2016版本。我们连接到 SSAS模型,并使用报告中的 DAX查询创建数据集。

这是我的报表数据集中使用的示例DAX查询,

evaluate
summarize(
calculatetable(
('Field Measures',
  PATHCONTAINS(substitute( 
  substitute( 
  substitute( 
  @Parameter_District
  , "{ ", "") 
  , " }", "") 
  , ",", "|") , 'Field Location'[District]),
  PATHCONTAINS(substitute( 
  substitute( 
  substitute( 
  @Parameter_City
  , "{ ", "") 
  , " }", "") 
  , ",", "|") , 'Field Location'[City])
  )
  'Field Fact'[Field Interview Number],
  'Occurred Date'[Date],
  'Occurred Date'[Year]
 ))

我在此查询中定义了两个参数(地区和城市),并且两个字段都来自同一表“ 归档位置”。

我面临的问题是,如果删除第二个参数“ CITY” ,此查询效果很好。但是,当我在查询中包括它时,它将失败。为了简单起见,我在这里只提到了2个参数,但是我有大约5个参数来自同一张表,它们工作正常。 enter image description here 我很想知道为什么只有在参数列表中包含 [CITY] 对象时才会发生这种情况,以及为什么删除该对象时它仍然有效。从字面上看,我不在意:(

请向我建议一些调试此问题的方法。

谢谢。 巴拉吉

2 个答案:

答案 0 :(得分:0)

我为我的问题找到了解决方案,但是我没有逻辑上的理由来解决这个问题。

让我重新发布报表中使用的DAX查询,

evaluate
summarize(
calculatetable(
('Field Measures',
  PATHCONTAINS(substitute( 
  substitute( 
  substitute( 
  @Parameter_District
  , "{ ", "") 
  , " }", "") 
  , ",", "|") , 'Field Location'[District]),
  PATHCONTAINS(substitute( 
  substitute( 
  substitute( 
  @Parameter_City
  , "{ ", "") 
  , " }", "") 
  , ",", "|") , 'Field Location'[City])
  )
 'Field Fact'[Field Interview Number],
 'Occurred Date'[Date],
 'Occurred Date'[Year],
 "Field Count",[FieldInterview - Count]
  ))

如果我们观察先前发布的原始代码和现在发布的代码,则它们之间只有一行差异。即测量值(字段计数)。在格式化我的问题时,我删除了最后一行代码(错误)。但是,当我重新访问自己的问题以寻找可能的答案时,我注意到了这种差异,我只是尝试通过删除上述 Measure来使用查询价值,它就像魔术一样!!

因此,我真的不了解度量,联接和参数在内部如何工作。我仍然愿意接受这里专家的任何讨论/投入。

谢谢。 巴拉吉

答案 1 :(得分:0)

简单的方法,而不是使用DAX创建参数,而是使用Filter

  1. 创建主要数据集1(包括城市列在内的所有必填字段)
  2. 例如为参数创建Dataset2(仅在此数据集中获取城市列)
  3. 使用Dataset2创建参数 然后转到主数据集1-属性-过滤器。 -在表达式中添加列和参数。 这会起作用