我有一个报告,该报告的交易类型为行组。有两种不同的类型。我想获得一种类型2与类型1的百分比。
我不确定该怎么做,我假设我需要使用一个表达交易类型名称的表达式,然后根据其他类型进行计算。
因此,我希望将7月的SOP +与SOP-的百分比相比,而不是7月的总数,因此为1.96%。为了清楚起见,SOP +中的数字不视为负数。
答案 0 :(得分:1)
当您设计要在报表中使用的查询时,通常更容易在单独的列中使用不同类型的值。您可以让报告为您完成大部分分组和汇总。在这种情况下,表达式将是这样的:
=Fields!SOP_PLUS.Value / Fields!SOP_MINUS.Value
由于它们都在同一列的行中,因此您必须使用一些逻辑将它们分成几列,然后执行操作。
您需要将两个计算出的字段添加到数据集中。使用这样的表达式获取值:
=IIf(Fields!TYPE_CODE.Value = "SOP+", Fields!SOP.Value, Nothing)
换句话说,您将拥有新的列,这些列的正负值仅在其他行中带有空白。现在您可以使用类似的表达式来进行比较。
=Max(Fields!SOP_PLUS.Value) / Max(Fields!SOP_MINUS.Value)
请记住,Max
函数适用于当前组范围。当您将多个行和列组添加到混合中时,这可能会变得更加复杂。如果这成为问题,我建议您考虑重写查询以在单独的行中提供这些值,以简化报表设计。
答案 1 :(得分:0)
WITH table1([sop-], [sop+]) AS (
SELECT 306, -6
UNION ALL
SELECT 606, -14)
SELECT(CAST([sop+] AS DECIMAL(5, 2)) / CAST([sop-] AS DECIMAL(5, 2))) * 100.0 FROM table1;
返回:
-1.960784000
-2.310231000