我是SSAS的新手,需要帮助的东西等同于SQL中的where子句,我确信MDX常规的答案很简单。
我在报表生成器中有多个选择参数列表的拉取值,但我需要根据用户当前正在查看的项目筛选出合同。这是正确提取所有值的查询。
WITH MEMBER [Measures].[ParameterCaption] AS [dimContracts].[ContractName].CURRENTMEMBER.MEMBER_CAPTION
MEMBER [Measures].[ParameterValue] AS [dimContracts].[Contract Name].CURRENTMEMBER.UNIQUENAME
SELECT {[Measures].[ParameterCaption],
[Measures].[ParameterValue]} ON COLUMNS,
[dimContracts].[Contract Name].Children ON ROWS
FROM [cubeProjectEntities]
我需要添加等同于:
的内容WHERE dimContracts.[Project Id] = 1
我添加了哪个产生了正确的过滤集,但是从这里我不知道如何使用report参数来使其工作。每次我测试它只是给出并清空数据集。我的参数只是在页面上打印,所以我知道它设置正确。
WHERE [dimContracts].[Project Id].[1]
这不起作用:
WHERE [dimContracts].[Project Id].[@ProjectId]
然后在“报表”构建器中,我将一个参数传递给查询,以替换@projectId的1。
感谢您的帮助!
答案 0 :(得分:3)
WITH MEMBER [Measures].[ParameterCaption] AS [dimContracts].[ContractName].CURRENTMEMBER.MEMBER_CAPTION
MEMBER [Measures].[ParameterValue] AS [dimContracts].[Contract Name].CURRENTMEMBER.UNIQUENAME
SELECT {[Measures].[ParameterCaption],
[Measures].[ParameterValue]} ON COLUMNS,
[dimContracts].[Contract Name].Children ON ROWS
FROM [cubeProjectEntities]
Where (STRTOMEMBER(@projectid))
在MDX中,where子句是一个切片器。 Here's一篇关于SQL和MDX之间差异的好文章。
这是关于在MDX查询中使用SSRS参数的link。您实际上想要将整个成员名称传递给查询而不仅仅是值(例如:[DimContracts].[Project ID].[1]
)