2016-01-26 56 views
1

我有一個COGNOS包,用於處理我公司內的流程數據。他們都有開始日期,未完成的流程沒有結束日期。如果開始日期在x之前,並且結束日期在x之後或空,則進程在日期x處於活動狀態。該軟件包沒有時間序列。Cognos Report Studio - For循環?

過去兩年,該公司需要在每個月末的活動進程數量報告。由於沒有時間序列迭代,我必須具有創造性。我創建了24個數據項,每個項目的公式如下:

IF (([Start Date] <= _last_of_month(_add_months(current_date;-1))) and 
(([End Date] is missing) or 
([End Date] > _last_of_month(_add_months(current_date;-1))))) 
THEN (1) ELSE (0) 

...減去1到24個月。然後,我在報告的交叉表的一列上添加了每一個。

那麼,這個解決方案真的很醜,並且不可靠。有沒有辦法在Report Studio上迭代變量,爲每個迭代創建一個行或列?

謝謝!

回答

0

您可以在Report Studio中模擬時間序列。 有一些選項:

  1. 如果你被允許在RS爲SQL。創建查詢主題,如:

    select _last_of_month(_add_months(current_date;-1)) as Month 
    union all 
    select _last_of_month(_add_months(current_date;-2)) as Month 
    union all 
    .... 
    
  2. 使用日期從現有表創建查詢主題。查詢項目[月]由

    [date_field] < _add_months(current_date;-24) 
    

    _last_of_month([date_field]) 
    

    過濾器,並檢查查詢屬性「自動分組和彙總」設置爲「是」。 小心選擇小而密集的表作爲來源。

  3. 根據超過24行的現有表創建查詢主題。添加查詢項與表達

    1 
    

    稱之爲「1」爲好。添加另一個QI,稱之爲[返回],表達

    running-total([1]) 
    

    過濾它:

    [Back] <= 24 
    

    添加另一個QI與表達

    _last_of_month(_add_months(current_date;-[Back])) 
    

    這是你的[月]字段

比加入此查詢主題與通過條件

[Time series].[Month] > [Process].[Start Date] and 
([Time series].[Month] < [Process].[End Date] or [End Date] is missing) 

比你的進程列表算了算,每[月]行

+0

很抱歉這麼晚纔回復。這很好,非常感謝。 –

相關問題