我在iReport中为JasperServer创建报告。我正在与前10家公司一起创建一份报告,其中所选产品的产品下载量最多。用户可以在JasperReports中选择带有列表的产品(参数{$ P {ProductFormat}})。
我的产品维度具有以下结构:[Product]。[ProductFactory]。[ProductType],因此参数的输入例如可以是:[Product]。[ProductCategory1]。[Product1],[Product]。 [ProductCategory2]。[Product2],...我也希望这些产品可以作为行使用,所以我可以将它们用作iReport中的字段。 (产品不在哪里)
SELECT
NON EMPTY {
[Measures].[Orders]
} ON COLUMNS,
NON EMPTY
Crossjoin({TopCount({[USER_COMPANY].[Company].Members}, 10, [Measures].[Orders])}, {$P{ProductFormat}})
ON ROWS
FROM [Products]
WHERE $P{DateFilter}
此查询返回所有产品的前10家公司,每个产品都过滤了数据。我想要所选产品的前十大公司,但我无法使用topcount和一行。
答案 0 :(得分:0)
通过AdvWrks
针对SSMS
的此查询似乎无效:
WITH
SET [ProductFormat] AS
{
[Product].[Product Categories].[Category].[Bikes]
,[Product].[Product Categories].[Category].[Clothing]
,[Product].[Product Categories].[Category].[Components]
}
SELECT
[Measures].[Reseller Sales Amount] ON 0
,Generate
(
[ProductFormat]
,
[Product].[Product Categories].CurrentMember
*
TopCount
(
[Geography].[Geography].[City].MEMBERS
,5
,[Measures].[Reseller Sales Amount]
)
) ON 1
FROM [Adventure Works];
返回以下内容:
如果我添加如下所示的WHERE
子句,那么它似乎可以识别上下文:
WHERE [Date].[Calendar].[Calendar Year].&[2006];