簡體   English   中英

SSRS:基於條件的新計算字段

[英]SSRS : New calculated field based on where condition

我是SSRS報告的新手,需要幫助...

我有一個包含“過程”,“級別”和“工作周”字段的數據集

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_WWPro_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')

我不確定如何為其編寫表達式。 請幫助我。

提前致謝!!

如果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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM