SSRS中的参数问题

时间:2017-03-03 11:22:19

标签: reporting-services ssas mdx

我希望能够获得SSRS报告,在那里我可以查询并查找产品组,该产品组占特定商店的三天总销售额的80%

为此,我在SSRS中创建了一个参数StoreKey。此Key从Query生成值,它包含我想要从中导入值的多维数据集中存在的所有StoreKeys(测试时只有四个StoreKeys)。

拥有StoreKey参数后,我在SSRS中创建了这个计算成员:

With Member [Measures].[Top_80] AS
select {[Measures].[Quantity]} on COLUMNS,
TopPercent([Dim Product2].[Product Group].Members, 80,
 ([Dim Store2].[Store Key].&[@StoreKey],[Measures].[Quantity])) on ROWS
from
(
     select 
     {
      [Dim Date].[Calender].[Date].[2014-11-24],
      [Dim Date].[Calender].[Date].[2014-11-25],
      [Dim Date].[Calender].[Date].[2011-11-22]
     }
ON columns
from [Cube])

但这产生了一个显示ProductGroup,Quantity和Top_80的单元格集,其中Top_80的值是我用作输入的字符串,即整个查询作为一个整体,甚至包括@StoreKey没有已经用预览时选择的值替换了它的变量名。

select {[Measures].[Quantity]} on COLUMNS,
TopPercent([Dim Product2].[Product Group].Members, 80,
 ([Dim Store2].[Store Key].&[103],[Measures].[Quantity])) on ROWS
from
(
     select 
     {
      [Dim Date].[Calender].[Date].[2014-11-24],
      [Dim Date].[Calender].[Date].[2014-11-25],
      [Dim Date].[Calender].[Date].[2011-11-22]
     }
ON columns
from [Cube])

在Management Studios中按预期工作,其中我具有StoreKey的实际值"硬编码",以及我省略With Member ..... AS子句的地方。

我已将参数StoreKey映射到日期集中,其中表达式为其变量。当我创建数据集时,我将其创建为SSAS多维数据集中的文本,我已选择将其包含在所有ProductGroups, StoreKeys, Date, Quantity中。

有没有人知道为什么整个查询成为输出而不是它的值?从我查询的查询中我无法弄清楚我的语法错误在哪里(尽管这是我在SSRS中的第一个计算字段,因此我应该相信存在一些语法错误等)。

1 个答案:

答案 0 :(得分:1)

这样的事情应该创建一个两列表 - 我有点不确定你使用WITH条款的内容是什么?

SELECT 
    [Measures].[Quantity] ON COLUMNS,
    TopPercent(
      [Dim Product2].[Product Group].Members, 80,
      (
         [Dim Store2].[Store Key].&[@StoreKey]
         StrToMember('[Dim Store2].[Store Key].&[' + @StoreKey + ']', CONSTRAINED)
        ,[Measures].[Quantity]
      )
    ) ON ROWS
FROM
(
     SELECT 
     {
      [Dim Date].[Calender].[Date].[2014-11-24],
      [Dim Date].[Calender].[Date].[2014-11-25],
      [Dim Date].[Calender].[Date].[2011-11-22]
     }
     ON COLUMNS
     FROM [Cube]
);