我需要创建一个折线图,其中显示前10个产品当月的销售额和前几个月的最高销售额。
我对数据集的查询是这样的:
**select [Year], [Month] , ProductName, Sales from ABC;**
我用
插入了ssrs折线图Values : Sum(Sales)
Category Group : Month
Series Groups : ProductName
我右键点击了系列组并更改了过滤和排序属性,如下所示:
过滤:
Expression : Sales
Operator : Top N
Value = 10
排序:
Sort by : Sales Order by : Z to A
从逻辑上讲,我预计会看到销量最高的十大产品按降序排列,但我没有看到这种情况发生。
相反,我看到的是,线图的图例按随机顺序排序,图例中显示的前10个产品仅显示为折线图的一部分。谁能告诉我如何解决它?
请告诉我,如果需要,我可以提供更多详细信息。
答案 0 :(得分:0)
大多数时候我发现在SQL中进行聚合,过滤和排序更容易,只需使用SSRS来显示图表。您可以将数据集查询更改为:
SELECT [MONTH], [YEAR], A.ProductName, Sales
FROM ABC as A
INNER JOIN (
SELECT TOP 10 ProductName, SUM(Sales) as SalesRank
FROM ABC
WHERE [MONTH] = MONTH(GETDATE()) and [YEAR] = YEAR(GETDATE())
GROUP BY ProductName
ORDER BY SUM(Sales) DESC
) as B on B.ProductName = A.ProductName
ORDER BY SalesRank DESC, [YEAR], [MONTH]
这样可以更轻松地按照您在报告中的预期方式运行图表。