SELECT
ad.ORG_NAME "Account",
wo.WORKORDERID "Ticket ID",
rtdef.NAME "Request Type",
wo.RESOLVEDTIME "Resolved Time",
pd.PRIORITYNAME "Priority",
(
CASE WHEN wos.IS_FR_OVERDUE = '1' THEN
(
CASE WHEN wo.RESPONDEDTIME = 0 THEN
CONVERT(VARCHAR(20), FLOOR((DATEDIFF_BIG(MILLISECOND,'1970-01-01 00:00:00.000', getDate()) - wo.FR_DUETIME ) / (1000 * 60 * 60)))
+ ':' +
CONVERT(VARCHAR(20), FLOOR((DATEDIFF_BIG(MILLISECOND,'1970-01-01 00:00:00.000', getDate()) - wo.FR_DUETIME ) / (1000 * 60))%60)
ELSE
CONVERT(VARCHAR(20), FLOOR(( wo.RESPONDEDTIME - wo.FR_DUETIME ) / (1000 * 60 * 60)) )
+ ':' +
CONVERT(VARCHAR(20),FLOOR((( wo.RESPONDEDTIME - wo.FR_DUETIME ) / (1000 * 60)) % 60))
END
)
ELSE '0'
END
) AS "Response overdue time",
(
CASE WHEN wos.ISOVERDUE = '1' THEN
(
CASE WHEN wo.RESOLVEDTIME = 0 THEN
CONVERT(VARCHAR(20), FLOOR((DATEDIFF_BIG(MILLISECOND,'1970-01-01 00:00:00.000', getDate()) - wo.DUEBYTIME ) / (1000 * 60 * 60)))
+ ':' +
CONVERT(VARCHAR(20),FLOOR((DATEDIFF_BIG(MILLISECOND,'1970-01-01 00:00:00.000', getDate()) - wo.DUEBYTIME ) / (1000 * 60))%60)
ELSE
CONVERT(VARCHAR(20), FLOOR(( wo.RESOLVEDTIME - wo.DUEBYTIME ) / (1000 * 60 * 60)) )
+ ':' +
CONVERT(VARCHAR(20),FLOOR(( ( wo.RESOLVEDTIME - wo.DUEBYTIME ) ) / (1000 * 60))%60)
END
)
ELSE '0'
END
) AS "Resolution overdue time"
FROM WorkOrder wo
LEFT JOIN WorkOrderStates wos ON wo.WORKORDERID = wos.WORKORDERID
LEFT JOIN PriorityDefinitiON pd ON wos.PRIORITYID = pd.PRIORITYID
LEFT JOIN WorkOrderAccountMapping wam ON wo.WORKORDERID = wam.WORKORDERID
LEFT JOIN AccountDefinitiON ad ON wam.ACCOUNTID = ad.ORG_ID
LEFT JOIN RequestTypeDefinitiON rtdef ON wos.REQUESTTYPEID = rtdef.REQUESTTYPEID
WHERE wo.ISPARENT = '1'