我是SSRS报道的新手,我需要帮助...
我有一个包含“Process”,“Level”和“Workweek”字段的数据集
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'),其中Level ='Lvl_1'
更新表SET Proc_Start =(从表中选择WW,其中Level ='Lvl_0')
我不确定如何为它编写表达式。请帮助我。
先谢谢!!
答案 0 :(得分:2)
如果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()
将返回Process
的第一个实例,并为您提供该行的WW
。