我有以下数据集:
我需要在SSRS中显示两行:一行对应于Sales for IsControl = 0,另一行对应于IsControl = 1。 但是,对于具有control = 1的行,必须为其Num_Of_Customers划分Sales,并将其乘以IsControl = 0的同一week_of_day的Num_of_Customers。
换句话说,我将IsControl = 1的销售额扩大为IsControl = 0.我可以在线图上显示两条线。
这样做的SSRS表达是什么?
在这种情况下,Sales和Num_Of_Customers等效于IsControl = 0和IsControl = 1,但它们通常是不同的。
答案 0 :(得分:1)
如果我正确理解了这个问题,下面的表达式就可以满足您的需求。
=IIf(Fields!IsControl.Value = 1,
Fields!Sales.Value/Lookup(Fields!week_of_day.Value.ToString() & "0",
Fields!week_of_day.Value.ToString() & Fields!IsControl.Value.ToString(),
Fields!Num_Of_Customers.Value,
"DataSet1"),
Fields!Sales.Value*Fields!Num_Of_Customers.Value)
如果IsControl
为1,请查找同一日期IsControl
为0的客户数,并将Sales
除以该数字。否则,将Sales
乘以同一行中的客户数量。
如果您只需要销售IsControl
为0的行,请使用:
=IIf(Fields!IsControl.Value = 1,
Fields!Sales.Value/Lookup(Fields!week_of_day.Value.ToString() & "0",
Fields!week_of_day.Value.ToString() & Fields!IsControl.Value.ToString(),
Fields!Num_Of_Customers.Value,
"DataSet1"),
Fields!Sales.Value)
无论您需要什么,Lookup
都会让您到IsControl
为0的行。拉出您需要的值并做必要的数学运算。