这是一个做出很多假设的通用答案。由于您的问题没有包含足够的信息来获得明确的答案,但希望这会给您足够的信息来解决您的问题。
要重新创建它,请执行以下操作(然后根据您的具体情况进行调整)
创建一个新报告。
添加数据集并使用以下查询作为数据集查询
-- create some sample data
DECLARE @t TABLE(Customer varchar(10), Product varchar(10), Quantity int)
INSERT INTO @t VALUES
('Dave', 'Hammer', 6), ('Dave', 'Saw', 6),('Dave', 'Hammer', 1),
('George', 'Drill', 3),('George', 'Hammer', 6),('George', 'Saw', 6),('George', 'Hammer', 1),
('Mary', 'Drill', 3),('Mary', 'Hammer', 6),
('Jane', 'Saw', 6),('Jane', 'Hammer', 1),('Jane', 'Drill', 3)
-- return the sample data plus a total per customer
SELECT *
, CustomerTotal = SUM(Quantity) OVER(PARTITION BY Customer)
FROM @t
这给出使用以下结果
接下来将矩阵控件添加到报表中。
将字段拖到矩阵中,如下所示
客户到“行”;产品到“列”; “数据”的数量
您现在应该有一个矩阵,下面显示了一些行组和列组。
接下来我们需要添加一个总计列,因此右键单击“产品”列组选择“添加总计 => 之后”
最后,我们需要测试总列中的值是否与数据集中最大的CustomerTotal 匹配。如果匹配,则将文本框color 属性更改为“红色”。
我们可以在文本框color 中使用这个表达式来做到这一点..
=IIF(
Sum(Fields!Quantity.Value) = MAX(Fields!CustomerTotal.Value, "DataSet1"),
"Red",
"Black")
它的作用是获取当前范围(整行)中的总量,并将其与范围“Dataset1”(即整个数据集)的最高 CustomerTotal 进行比较。如果两者匹配,则将 vlue 设置为“Red”,否则将其设置为“Black”
稍微整理一下,最终输出如下所示。