2017-08-09 67 views
0

我正忙於在Business Objects 4.2 webi報告中計算我的頭腦,這是我和一位同事試圖創建的。業務對象:查找並顯示第二個日期時間戳

該報表與我們的服務管理系統中的ChangeLog相關,並查看已關閉的票據已打開的次數&。

在我們的數據提供者查詢中,對於每張票據,有多個行從Universe返回,其中對象[Change Log(s)Event Details]中的文本字符串的開頭是'狀態已更改爲打開'或'狀態更改爲已關閉「。名爲[Change Log(s)Event Date And Time]的對象包含日誌事件的日期時間戳記。

期望的報表結構是一個表格,其中的字段爲[公司名稱],[事件編號],[第一次關閉],[第二次關閉],以及稍後添加的更多字段。事情是這樣的:

Company Name | Incident No | 1st Closure  | 2nd Closure  | 
------------------------------------------------------------------------- 
A N Other Plc | FLT| 18/04/2017 11:11:08 | 21/04/2017 10:30:05 | 

[公司名稱]和[事件否]是宇宙中的對象,所以我們在報告中剛剛提到的這些對象直接。

[1st Closure]正在使用計算返回Min([Change Log(s)Event Date And Time])事件的正常工作。

[第二次關閉]是我們卡住的地方!我已經閱讀了關於在報表計算中應用上下文的主題的一些文章,但似乎無法完全正確。 我覺得我們正在接近下面的計算,但它目前正在返回#MULTIVALUE錯誤。 「格式表」對話框中的「避免重複行聚合」選項當前處於禁用狀態,以防事件發生。

=[Change Log(s) Event Date And Time] Where((Left([Change Log(s) Event 
Details];20)="Status set to Closed") And Rank([Change Log(s) Event Date And 
Time];Bottom)=2) 

任何人都可以幫助解決方案嗎?

回答

0

可能有某種方法可以在查詢或報告中執行此操作。但是,如果你有超過宇宙的控制,你可以創建一個派生表看起來是這樣的......

SELECT a1.CompanyName, a1.IncidentNo, a1.FirstClosure, b1.SecondClosure 
FROM 
    (
     SELECT CompanyName, IncidentNo, MIN(dtLastChangeLogDateTimeAttempt) AS 'FirstClosure' 
     FROM ChangeLog 
     GROUP BY CompanyName, IncidentNo 
    ) a1 
LEFT JOIN 
    (
     SELECT b.CompanyName, b.IncidentNo, MIN(a.dtLastChangeLogDateTimeAttempt) AS 'SecondClosure' 
     FROM ChangeLog a 
      INNER JOIN 
      (
       SELECT CompanyName, IncidentNo, MIN(dtLastChangeLogDateTimeAttempt) AS 'FirstClosure' 
       FROM ChangeLog 
       GROUP BY CompanyName, IncidentNo 
      ) b ON a.CompanyName = b.CompanyName AND a.IncidentNo AND b.IncidentNo AND a.dtLastChangeLogDateTimeAttempt > b.FirstClosure 
     GROUP BY b.CompanyName, b.IncidentNo 
    ) b1 ON a1.CompanyName = b1.CompanyName AND a1.IncidentNo AND b1.IncidentNo 

諾埃爾

相關問題