我希望能够获得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中的第一个计算字段,因此我应该相信存在一些语法错误等)。
答案 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]
);