【发布时间】:2020-12-11 16:57:01
【问题描述】:
- 仅当作业的状态为“进行中”且大于 SLA_TMLINE 时,我需要帮助在几分钟内计算和填充字段“DURATION_CROSSED_AFTER_SLA”。如果 SLA_TMLINE 为“NA”,则字段也将为“NA”。 SLA_TMLINE 值仅在时间(EST)中给出,在计算时将自动假定当前日期,例如:对于 JOB_ID 1373,SLA_TMLINE 给出为 - 06:00 AM,这意味着 '8/22/2020 06:00: 00'。
- 此外,如果作业的状态为“进行中”,并且如果当前时间戳 (0) > SLA_TMLINE 为当天 +“1”小时,那么我们需要将作业的状态 (B.STATUS) 显示为“长时间运行” ',而不是 'IN PROGRESS'。
基本上我们将有以下工作状态:
WAITING
IN PROGRESS
LONG RUNNING
COMPLETE
FAILED
从以上 5 种工作状态中,表中没有“LONG RUNNING”状态,但我们将根据第 5 点得出它。 2 以上。
Query: SEL A.JOB_ID,A.SUBJECT_AREA,A.UC4JOB AS UC4_JOB,A."WORKFLOW/JOB" AS
INFA_WORKFLOW,B.STATUS,A.SCH_STRT_TIME,B.START_TIME,A.SLA_TMLINE,
'??' AS DURATION_CROSSED_AFTER_SLA
FROM NDW_PRCS_CNTRL_VIEWS.NDW_JOB_DETAIL A JOIN
NDW_PRCS_CNTRL_VIEWS.NDW_JOB_RUN_STATUS B
ON A.REF_ID = B.REF_ID
AND A.JOB_ID = B.JOB_ID
WHERE A.REF_ID IN (4171,977,997,1428,755,898,145)
AND B.DATA_DATE = DATE - 1;
Current Output we are getting:
JOB_ID SUBJECT_AREA UC4_JOB INFA_WORKFLOW STATUS SCH_STRT_TIME START_TIME SLA_TMLINE DURATION_CROSSED_AFTER_SLA
1,373 Subs by Speed NDW.EPC.SUBS_BY_SPEED_DATA_LOAD wf_EPC_SUBS_BY_SPEED COMPLETE 6:00 AM 8/22/2020 06:01:24 6:00 AM ??
343 CSG Run 2 NDW.P1P2MIG.NDW_CCS_DATA_EXTRACT.WF_CSG_EXTRACT_EQP_MERGE_SA wf_CSG_EXTRACT_EQP_MERGE_SA COMPLETE 23:00 PM 8/21/2020 23:00:24 23:04 PM ??
906 Billing NDW.P2.IN.WF_ROSETTA_SEMANTIC_ACCOUNT_LEDGER_FACT wf_ACCOUNT_LEDGER_FACT_INC COMPLETE 04:00 AM 8/22/2020 02:39:35 06:00 AM ??
539 iControl NDW.XHBU.SPRINT1.INFA_WF_DEPENDENT.ICONTROL_STG_JRNL_LOAD wf_XH_BU_ICONTROL_dly_inc COMPLETE 05:00 AM 8/22/2020 05:01:25 NA ??
668 XH BB/Cell Offline NDW.XHBU.SPRINT2.INFA_WF_DEPENDENT.BB_CELL_OFFLINE_DLY wf_XH_BB_CELL_OFFLINE_DLY COMPLETE 06:00 AM 8/22/2020 07:19:49 NA ??
2,042 NDW_XHBU NDW_XH.JOBS.SPRINT2.INFA_WF_DEPENDENT.XH_EQUIPMENT_ORDER_DLY Wf_XH_EQUIPEMENT_ORDER_ACT_DLY WAITING NA ? NA ??
【问题讨论】:
-
抱歉,您的输出不可读。这些列的数据类型是什么?
cast(SLA_TMLINE as timestamp)将返回当前日期的时间戳。然后这只是一些案例...... -
您好迪特,感谢您的回复。我在问题中附上了一张图片,下面是数据类型。 SLA_TMLINE VARCHAR(25)、SCH_STRT_TIME VARCHAR(25)、START_TIME TIMESTAMP(0)
-
嗨 Dieter,当我投射为 time(0) 时,它给了我们无效的时间错误:SEL cast(lpad(nullif(SLA_TMLINE, 'NA'), 8, '0') as time (0) 格式 'hh:miBT') 作为 SLA_TS FROM NDW_PRCS_CNTRL_VIEWS.NDW_JOB_DETAIL 其中 REF_ID IN (4171,977,997,1428,755,898,145);无效时间错误 SEL lpad(nullif(SLA_TMLINE, 'NA'), 8, '0') AS COL_1,length(COL_1) AS COL_2 FROM NDW_PRCS_CNTRL_VIEWS.NDW_JOB_DETAIL where REF_ID IN (4171,977,997,1428,755,898,145); COL_1 COL_2 06:00 AM 8 02:30 AM 8 23:04 PM 8 06:00 AM 8 ? ? ? ? ? ?
标签: sql teradata teradata-sql-assistant teradatasql