2014-04-17 22 views
0

這是我們在Crystal ver 9上的報告。它包括用於選擇用戶ID和掃描零件時間以及提供時間的參數當每個部分被掃描時。我想要添加另一列來計算掃描之間的間隔時間。請求是將第一個時間戳記留爲空白,但剩下的時間計算間隔時間。Crystal Report第9版:其餘文本看起來不是公式的一部分

http://i59.tinypic.com/bjbtl1.jpg

這有點我蟾蜍想出了實體模型SQL的,但我不能轉化爲晶體這一點。

with temptab as ( select 1 key, sysdate as dt from dual union select 1 key, sysdate + interval '1' minute as dt from dual union select 1 key, sysdate + interval '2' minute as dt from dual union select 1 key, sysdate + interval '6' minute as dt from dual union select 1 key, sysdate + interval '7' minute as dt from dual ) select t.key, t.dt, lag(t.dt) over (partition by t.key order by t.dt asc) prev_row_dt, (t.dt - lag(t.dt) over (partition by t.key order by t.dt asc))*24*60*60 diff_in_seconds from temptab t;


這裏是CR IHAVE用於randon用戶。記得有參數設置來選擇用戶和日期:

SELECT "LOCN_HDR"."LOCN_BRCD", "ITEM_MASTER"."SKU_BRCD", "USER_MASTER"."LOGIN_USER_ID", "PROD_TRKG_TRAN"."MOD_DATE_TIME", "PROD_TRKG_TRAN"."TRAN_TYPE", "PROD_TRKG_TRAN"."TRAN_CODE", "PROD_TRKG_TRAN"."USER_ID", "USER_MASTER"."USER_NAME", "PROD_TRKG_TRAN"."NBR_UNITS", "PROD_TRKG_TRAN"."SKU_ID" FROM "PKMS"."LOCN_HDR" "LOCN_HDR", "PKMS"."USER_MASTER" "USER_MASTER", "PKMS"."PROD_TRKG_TRAN" "PROD_TRKG_TRAN", "PKMS"."ITEM_MASTER" "ITEM_MASTER" WHERE ("USER_MASTER"."LOGIN_USER_ID"="PROD_TRKG_TRAN"."USER_ID") AND ("LOCN_HDR"."LOCN_ID"="PROD_TRKG_TRAN"."TO_LOCN") AND ("PROD_TRKG_TRAN"."SKU_ID"="ITEM_MASTER"."SKU_ID") AND ("PROD_TRKG_TRAN"."TRAN_CODE"='001' OR "PROD_TRKG_TRAN"."TRAN_CODE"='005') AND ("PROD_TRKG_TRAN"."TRAN_TYPE"='200' OR "PROD_TRKG_TRAN"."TRAN_TYPE"='300') AND ("PROD_TRKG_TRAN"."MOD_DATE_TIME">={ts '2014-04-16 00:00:00'} AND "PROD_TRKG_TRAN"."MOD_DATE_TIME"<{ts '2014-04-17 00:00:00'}) AND "PROD_TRKG_TRAN"."USER_ID"='4517' ORDER BY "PROD_TRKG_TRAN"."MOD_DATE_TIME", "USER_MASTER"."LOGIN_USER_ID", "PROD_TRKG_TRAN"."TRAN_TYPE

+0

這裏有什麼問題?你的標題(CR錯誤信息)如何適應? – Ryan

+0

問題是我該如何計算時間間隔?當我插入來自原始問題的代碼,我得到的錯誤是 – user2668214

+0

我發佈了CR代碼 – user2668214

回答

0

任何濾波器類型信息將進入報表 - >選擇公式 - >錄製

然後在細節部分你會放置一個公式字段來發現你正在尋找的差異,它會是這個樣子

datediff("s",date(totext({Calibration.C2301}&' '&{Calibration.C2333})),{Calibration.C2335}) 

我不知道什麼是滯後(t.dt)是,但上述的基本語法的日期(totext({Calibration.C 2301} &''& {Calibration.C2333}))是一個日期字段和時間字段串聯使這項工作。

+0

{PROD_TRKG_TRAN.TRAN_CODE} in [「001」,「005」] and {PROD_TRKG_TRAN.TRAN_TYPE} in [「200」,「300」] and {PROD_TRKG_TRAN.MOD_DATE_TIME} = {?日期}和 {PROD_TRKG_TRAN.USER_ID} = {?User} – user2668214

相關問題