我是Stack overflow
和SQL server reporting services
的新手。所以请原谅我的问题格式。
情况就是这样:
我正在开发一份SSRS报告,需要按照不同的产品名称进行分组,如下所示。
我使用表达式
创建了一个名为 ProdCount 的文本框COUNTDISTNCT(Fields!Product.value,"DataSet1")
给出了 DataSet1 范围内的计数63。
现在我需要通过获取上述公式为>1
的产品名称对数据进行分组。
=IIF(ProdCount>1,Fields!Product.value,Nothing)
我的问题:
我试图从计算字段调用ProdCount,因为我 无法使用计算字段中的聚合函数并使用 第二个表达式使用
= ReportItems!ProdCount.value
给我一个错误 FieldValue拒绝ReportItems
我尝试通过
创建计算字段来组合上述两个表达式 IIF(!CountDistinct(字段Product.Value,"数据集1")>!1,字段Product.Value,为Nothing)
这给了我一个错误计算字段不能有表达式
我尝试使用报告变量,方法与上述(1)相同,但也没有。
我还尝试在查询中使用CROSS JOIN
选择计数(不同(产品名称)
来自 Query1
交叉连接
我的主要查询,它为我提供了数据
这需要更多时间来执行。
所以任何人都可以帮我解决方案,我可以通过组合上述两个表达式对数据进行分组。
请原谅我的格式。我对框架问题感到困惑。我接受你所有的编辑,以便我将来可以学习。
这是我的代码:
SELECT * FROM
--Query1 which counts the number of distinct products)
(SELECT DISTINCT COUNT(gproduct.ProductName) AS ProdCount
FROM Table1
LEFT JOIN Table4
ON Table1.column=Table1.column
LEFT JOIN Table2
ON Table3.Column = TTable1.Column
LEFT JOIN
(
SELECT Distinct Table6.Name AS ProductName,Table9.ColumnId
FROM Table6
INNER JOIN Table7
ON Table6.Column=Table7.Column
INNER JOIN Table8
ON Table7.Column=Table8.Column
INNER JOIN Table9
ON Table9.Column=Table8.Column
)gproduct
ON Table1.ColumnId=gproduct.ColumnId
GROUP BY gproduct.ColumnId,
)qProduct
CROSS JOIN
--My main Query which get data from different table including Product name
(SELECT
Upper(CASE WHEN (CASE WHEN Table4.Column =1 THEN 'Yes' ELSE 'NO' END)='YES'
THEN gab.ProductName
ELSE
Table2.productName
END) AS Product,
FROM Table1 AS ec
LEFT JOIN Table2 AS ep
ON --
LEFT JOIN Table3 AS ebrd
ON --
Left JOIN Table4 AS etpc
ON --
LEFT JOIN Table5 AS gst
ON --
LEFT JOIN
(
SELECT Distinct Table6.Name AS ProductName,Table9.ColumnId
FROM Table6
INNER JOIN Table7
ON Table6.Column=Table7.Column
INNER JOIN Table8
ON Table7.Column=Table8.Column
INNER JOIN Table9
ON Table9.Column=Table8.Column
) gab
ON Table1.ColumnId=gab.ColumnId
)QMain
答案 0 :(得分:0)
就个人而言,我会尝试在查询本身而不是SSRS报告中解决问题。根据您提供的数据,它将类似于:
SELECT
ProductName,
count(distinct Product)
from
YourTable
group by
ProductName
having count(distinct product) > 1
稍后创建SSRS报告应该相当容易。