Hi,
Situation:
Need a query to return number of ticket records by month of open in a
log table where the ticket open record is older than 24 hours then the
ticket pending or ticket closed record. Tickets can also only have a
closed record with no open record.
Sample data table:
ticket_id date_log status_name status_id
13 8/21/2002 10:11:23 AM Open 1
13 8/21/2002 10:12:06 AM Closed 3
14 8/21/2002 10:16:54 AM Closed 3
14 8/21/2002 10:16:35 AM Open 1
15 8/21/2002 10:22:19 AM Open 1
15 8/21/2002 12:30:15 PM Open 1
15 8/21/2002 2:06:09 PM Open 1
15 8/23/2002 9:34:39 AM Open 1
15 8/23/2002 9:57:38 AM Open 1
15 8/23/2002 10:02:39 AM Closed 3
92 8/22/2002 4:38:24 PM Open 1
92 8/22/2002 4:45:59 PM Closed 3
93 8/23/2002 8:55:41 AM Open 1
93 8/23/2002 9:06:27 AM Closed 3
94 8/23/2002 8:59:17 AM Open 1
94 8/26/2002 9:22:27 AM Closed 3
98 8/23/2002 9:45:48 AM Open 1
98 8/26/2002 9:20:17 AM Closed 3
980 10/1/2002 9:55:25 AM Open 1
980 10/1/2002 9:55:36 AM Closed 3
1183 10/11/2002 9:58:25 AM Closed 3
1184 10/11/2002 10:03:17 AM Closed 3
1185 10/11/2002 10:05:51 AM Closed 3
1225 10/14/2002 10:56:47 AM Open 1
1225 10/16/2002 1:40:06 PM Pending 2
1225 10/17/2002 11:21:48 AM Pending 2
1225 10/17/2002 1:51:30 PM Pending 2
1225 10/18/2002 9:59:49 AM Pending 2
1225 10/18/2002 2:50:39 PM Closed 3
1225 5/11/2003 12:05:29 PM Closed 3
Current query:
SELECT DISTINCT DATEPART(mm, date_clean) AS month_name,
(SELECT count(DISTINCT t_id)
FROM log_tickets t1
WHERE (t_id = t2.t_id) AND (DATEDIFF(hh,
(SELECT TOP 1 date_log
FROM log_tickets t1
WHERE (t_id = t2.t_id) AND (status_id = 1)
)
,
(SELECT TOP 1 date_log
FROM log_tickets t1
WHERE (t_id = t2.t_id) AND (status_id = 2 OR status_id
= 3)
)
)
)>24) AS late_tickets
FROM dbo.log_tickets t2
Current Output:
month_name late_tickets
10 1
8 0
8 1
10 0
This is the output of what I would like:
month_name late_tickets
8 3
10 2
Any help would be appreciated.
Thanks,
Sam
Situation:
Need a query to return number of ticket records by month of open in a
log table where the ticket open record is older than 24 hours then the
ticket pending or ticket closed record. Tickets can also only have a
closed record with no open record.
Sample data table:
ticket_id date_log status_name status_id
13 8/21/2002 10:11:23 AM Open 1
13 8/21/2002 10:12:06 AM Closed 3
14 8/21/2002 10:16:54 AM Closed 3
14 8/21/2002 10:16:35 AM Open 1
15 8/21/2002 10:22:19 AM Open 1
15 8/21/2002 12:30:15 PM Open 1
15 8/21/2002 2:06:09 PM Open 1
15 8/23/2002 9:34:39 AM Open 1
15 8/23/2002 9:57:38 AM Open 1
15 8/23/2002 10:02:39 AM Closed 3
92 8/22/2002 4:38:24 PM Open 1
92 8/22/2002 4:45:59 PM Closed 3
93 8/23/2002 8:55:41 AM Open 1
93 8/23/2002 9:06:27 AM Closed 3
94 8/23/2002 8:59:17 AM Open 1
94 8/26/2002 9:22:27 AM Closed 3
98 8/23/2002 9:45:48 AM Open 1
98 8/26/2002 9:20:17 AM Closed 3
980 10/1/2002 9:55:25 AM Open 1
980 10/1/2002 9:55:36 AM Closed 3
1183 10/11/2002 9:58:25 AM Closed 3
1184 10/11/2002 10:03:17 AM Closed 3
1185 10/11/2002 10:05:51 AM Closed 3
1225 10/14/2002 10:56:47 AM Open 1
1225 10/16/2002 1:40:06 PM Pending 2
1225 10/17/2002 11:21:48 AM Pending 2
1225 10/17/2002 1:51:30 PM Pending 2
1225 10/18/2002 9:59:49 AM Pending 2
1225 10/18/2002 2:50:39 PM Closed 3
1225 5/11/2003 12:05:29 PM Closed 3
Current query:
SELECT DISTINCT DATEPART(mm, date_clean) AS month_name,
(SELECT count(DISTINCT t_id)
FROM log_tickets t1
WHERE (t_id = t2.t_id) AND (DATEDIFF(hh,
(SELECT TOP 1 date_log
FROM log_tickets t1
WHERE (t_id = t2.t_id) AND (status_id = 1)
)
,
(SELECT TOP 1 date_log
FROM log_tickets t1
WHERE (t_id = t2.t_id) AND (status_id = 2 OR status_id
= 3)
)
)
)>24) AS late_tickets
FROM dbo.log_tickets t2
Current Output:
month_name late_tickets
10 1
8 0
8 1
10 0
This is the output of what I would like:
month_name late_tickets
8 3
10 2
Any help would be appreciated.
Thanks,
Sam
Comment