SSRS:根据新的计算字段where条件
问题描述:
我是新来的SSRS报告,我需要帮助...SSRS:根据新的计算字段where条件
我有场“过程”,“级别”和“工作周”的数据集
Process Level WW ------- ----- -- Test Lvl_0 3 Test Lvl_1 28 Test Lvl_2 48 Samp Lvl_0 10 Samp Lvl_1 39 Samp Lvl_2 51
我现在想的是再创建两个计算字段:Start_WW和Pro_Start从WW字段的值。
Lvl_0的WW被认为是Process_Start。
的逻辑是一样的东西
Process Level WW Start_WW Pro_Start ------- ----- -- -------- --------- Test Lvl_0 3 0 3 Test Lvl_1 28 3 3 Test Lvl_2 48 28 3 Samp Lvl_0 10 0 10 Samp Lvl_1 39 10 10 Samp Lvl_2 51 39 10
我知道它是类似于SQL
更新表SET Start_WW =(从表中选择WW其中level = 'Lvl_0'),其中等级=” Lvl_1'
更新表SET Proc_Start =(从表中选择WW其中level = 'Lvl_0')
我不知道如何为它编写表达式。请帮助我。
在此先感谢!
答
如果Start_WW
只是前面的WW
那么你甚至不需要计算字段;你可以只使用Previous()
函数的表达式表的单元格:
=IIF(Fields!Process.Value = Previous(Fields!Process.Value), Previous(Fields!WW.Value), 0)
对于Pro_Start
,你可以添加到您的SQL:
SELECT MyTable.Process, MyTable.Level, MyTable.WW, Start.Pro_Start
FROM MyTable
INNER JOIN (
SELECT Process, Level, MIN(WW) AS Pro_Start
FROM MyTable
GROUP BY Process, Level
) Start ON MyTable.Process = Start.Process AND MyTable.Level = Start.Level
由于没有进入查询,然后你可以通过Lookup()得到Pro_Start
:
=Lookup(Fields!Process.Value, Fields!Process.Value, Fields!WW.Value, "MyDataset")
的Lookup()
将返回的第一个实例,并为您提供该行的WW
。
我尝试使用'Previous()',但我得到其他进程的数据作为我的下一个不正确的开始。 – damseldeebi 2014-10-29 09:13:11
'case fields!ww.process when previous(fields!ww.process)then Previous(fields!ww.value)else value' – pancho018 2014-10-29 10:39:33
尝试更新的表达式 – 2014-10-29 10:56:01