我遇到 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个参数来自同一张表,它们工作正常。 我很想知道为什么只有在参数列表中包含 [CITY] 对象时才会发生这种情况,以及为什么删除该对象时它仍然有效。从字面上看,我不在意:(
请向我建议一些调试此问题的方法。
谢谢。 巴拉吉
答案 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