/build/static/layout/Breadcrumb_cap_w.png

Missed follow-up Report

Trying to run a report that will provide me with a list of incidents that have not been followed up on within a given time period, say three days.  So I wrote this report below, which provides me a list of all open incidents, but would like to filter it based on the last time the tech either emailed and cc'ed the kbox or wrote a comment indicating something related to the incident.

I know I am trying to do some type of comparison on the HD_TICKET_CHANGE table and the current date, but the MYSQL is driving me crazy.  I usually work with MS SQL and some of the changes are hard to follow.

 

Thoughts?

 

 

 

SELECT (SELECT NAME FROM HD_QUEUE WHERE T.HD_QUEUE_ID = HD_QUEUE.ID) AS BUCKET,

     T.ID,

  DATE_FORMAT(T.CREATED, '%m-%d') AS OPEN,

     DATE_FORMAT((SELECT H.TIMESTAMP FROM HD_TICKET_CHANGE H

           WHERE H.HD_TICKET_ID = T.ID

           AND H.USER_ID IN (SELECT USER_ID FROM USER_LABEL_JT WHERE LABEL_ID IN (523, 531, 534, 535, 536, 592))

           AND H.USER_ID = T.OWNER_ID

           AND H.OWNERS_ONLY <> 1

           ORDER BY H.TIMESTAMP DESC

           LIMIT 1), '%m-%d') AS LAS_CON, #LAST CONTACT, , LIMIT 1 SHOWS MOST CURRENT(TOP 1)

     IFNULL((SELECT FULL_NAME FROM USER WHERE T.OWNER_ID = USER.ID),' Unassigned') AS OWNER,

     IFNULL(T.DUE_DATE, ' ') AS DUE_DATE,

     (SELECT FULL_NAME FROM USER WHERE T.SUBMITTER_ID = USER.ID) AS SUBMITTER,

     T.TITLE AS TITLE,

     T.CUSTOM_FIELD_VALUE2 AS INCIDENT_SUMMARY

 

FROM HD_TICKET T

INNER JOIN HD_CATEGORY C ON C.ID = T.HD_CATEGORY_ID

INNER JOIN HD_STATUS S ON S.ID = T.HD_STATUS_ID

 

WHERE (S.STATE IN ('opened', 'stalled'))

    #AND DATE_FORMAT(LAS_CON, '%m-%d')

 

ORDER BY Bucket, T.ID;

 


0 Comments   [ + ] Show comments

Answers (1)

Posted by: jverbosk 12 years ago
Red Belt
3

Good timing - I just wrote an inline view for another question today that does something very similar to what you want to do.  Give this a shot and see if it does what you want.

Hope that helps!

John

__________________

Notes:

Just change the number in

AND DATEDIFF(LAST_ACTION.MTIMESTAMP, T.CREATED) >= #

to whatever you want to specify the days filter.  Currently it's set to 3 as you specified above. 

If you want to see the actual number of days a ticket has sat idle, add this column to the SELECT statements (top):

DATEDIFF(LAST_ACTION.MTIMESTAMP, T.CREATED) AS DAYS_IDLE

__________________

SELECT Q.NAME AS BUCKET, T.ID, 
DATE_FORMAT(T.CREATED, '%m-%d') AS OPEN,
DATE_FORMAT(LAST_ACTION.MTIMESTAMP, '%m-%d') AS LAST_CONTACT,
IFNULL(O.FULL_NAME,' Unassigned') AS OWNER,
IFNULL(T.DUE_DATE, ' ') AS DUE_DATE,
S.FULL_NAME AS SUBMITTER, T.TITLE AS TITLE,
T.CUSTOM_FIELD_VALUE2 AS INCIDENT_SUMMARY
FROM HD_TICKET T
JOIN HD_CATEGORY C ON (C.ID = T.HD_CATEGORY_ID)
JOIN HD_STATUS ST ON (ST.ID = T.HD_STATUS_ID)
JOIN USER O ON (O.ID = T.OWNER_ID)
JOIN USER S ON (S.ID = T.SUBMITTER_ID)
JOIN HD_QUEUE Q ON (Q.ID = T.HD_QUEUE_ID)
JOIN
 (SELECT C.ID, C.HD_TICKET_ID, MAX(C.TIMESTAMP) AS MTIMESTAMP
 FROM HD_TICKET_CHANGE C
 JOIN HD_TICKET T ON (T.ID = C.HD_TICKET_ID)
 LEFT JOIN USER U ON (U.ID = T.OWNER_ID)
 WHERE C.TIMESTAMP <> 0
 GROUP BY C.HD_TICKET_ID
 ORDER BY C.HD_TICKET_ID, C.ID)
LAST_ACTION ON (LAST_ACTION.HD_TICKET_ID = T.ID)
WHERE ST.STATE RLIKE 'opened|stalled'
AND DATEDIFF(LAST_ACTION.MTIMESTAMP, T.CREATED) >= 3
ORDER BY BUCKET, T.ID

Comments:
  • JV, I updated your sql to AND DATEDIFF(CURRENT_DATE, LAST_ACTION.MTIMESTAMP) >= 4 and that was kind of what I was looking for, but I think I almost have what I want.

    I'll post in on Tuesday or so. Appreciate your help. - AJAII 12 years ago

Don't be a Stranger!

Sign up today to participate, stay informed, earn points and establish a reputation for yourself!

Sign up! or login

Share

 
This website uses cookies. By continuing to use this site and/or clicking the "Accept" button you are providing consent Quest Software and its affiliates do NOT sell the Personal Data you provide to us either when you register on our websites or when you do business with us. For more information about our Privacy Policy and our data protection efforts, please visit GDPR-HQ