Author |
Topic |
qdaddyo
Starting Member
7 Posts |
Posted - 2008-07-07 : 16:27:48
|
OK, here's some background. The database I'm receiving an extract from is an in-house call-tracking system. Each call that comes in is assigned a ticket number (TICKET_NUMBER). Each ticket, though, may have several iterations (CALL_LEVEL) based on the number of updates a representative places on the ticket. Each iteration is represented by a different row. Any field that is updated on a call iteration is carried over to the next iteration until the ticket is closed. For example, we have ticket 12345 with 4 iterations:TICKET_NUMBER, CALL_LEVEL12345, 112345, 212345, 312345, 4Often, calls are assigned out to different groups to help with the resolution. These groups are listed in the ASSIGNEE column. I use the MODIFIED_DATE as the date the ticket was assigned to the assignee. The RETURN_DATE column stores the date when the issue is returned from the assignee to the representative.Below is an example:ID, TICKET_NUMBER, CALL_LEVEL, MODIFIED_DATE, STATUS, ASSIGNEE, RETURN_DATE100, 12345, 1, 2008-06-27, OPEN, NONE, NULL101, 12345, 2, 2008-06-29, PENDING, NONE, NULL102, 12345, 3, 2008-06-30, ASSIGNED, GROUP_A, NULL103, 12345, 4, 2008-07-01, ASSIGNED, GROUP_A, NULL104, 12345, 5, 2008-07-03, CLOSED, GROUP_A, 2008-07-03200, 67890, 1, 2008-06-18, OPEN, NONE, NULL201, 67890, 2, 2008-06-18, PENDING, GROUP_Z, NULL202, 67890, 3, 2008-06-19, PENDING, GROUP_Z, NULL203, 67890, 4, 2008-06-20, PENDING, GROUP_Z, NULL204, 67890, 5, 2008-06-25, PENDING, GROUP_Z, 2008-06-24205, 67890, 6, 2008-06-26, CLOSED, GROUP_Z, 2008-06-24My ultimate goal is to find the difference between the RETURN_DATE and the MODIFIED_DATE. I can get the RETURN_DATE from the final iteration of the call but am having trouble pulling the appropriate MODIFIED_DATE.What type of query do I use to grab the MODIFIED_DATE from the first instance where a value in the ASSIGNEE column does not equal NONE (in these cases, CALL_LEVELs 3 and 2)? Please note that the STATUS has nothing to do with query.Thanks for the help! |
|
khtan
In (Som, Ni, Yak)
17689 Posts |
Posted - 2008-07-07 : 20:02:15
|
[code]DECLARE @TABLE TABLE( ID int, TICKET_NUMBER int, CALL_LEVEL int, MODIFIED_DATE datetime, STATUS varchar(10), ASSIGNEE varchar(10), RETURN_DATE datetime)INSERT INTO @TABLESELECT 100, 12345, 1, '2008-06-27', 'OPEN', 'NONE', NULL UNION ALLSELECT 101, 12345, 2, '2008-06-29', 'PENDING', 'NONE', NULL UNION ALLSELECT 102, 12345, 3, '2008-06-30', 'ASSIGNED', 'GROUP_A', NULL UNION ALLSELECT 103, 12345, 4, '2008-07-01', 'ASSIGNED', 'GROUP_A', NULL UNION ALLSELECT 104, 12345, 5, '2008-07-03', 'CLOSED', 'GROUP_A', '2008-07-03' UNION ALLSELECT 200, 67890, 1, '2008-06-18', 'OPEN', 'NONE', NULL UNION ALLSELECT 201, 67890, 2, '2008-06-18', 'PENDING', 'GROUP_Z', NULL UNION ALLSELECT 202, 67890, 3, '2008-06-19', 'PENDING', 'GROUP_Z', NULL UNION ALLSELECT 203, 67890, 4, '2008-06-20', 'PENDING', 'GROUP_Z', NULL UNION ALLSELECT 204, 67890, 5, '2008-06-25', 'PENDING', 'GROUP_Z', '2008-06-24' UNION ALLSELECT 205, 67890, 6, '2008-06-26', 'CLOSED', 'GROUP_Z', '2008-06-24'SELECT m.TICKET_NUMBER, m.MODIFIED_DATE, r.RETURN_DATEFROM ( SELECT TICKET_NUMBER, MODIFIED_DATE = MAX(MODIFIED_DATE) FROM @TABLE m WHERE ASSIGNEE <> 'NONE' GROUP BY TICKET_NUMBER ) m INNER JOIN ( SELECT TICKET_NUMBER, RETURN_DATE = MAX(RETURN_DATE) FROM @TABLE m WHERE RETURN_DATE IS NOT NULL GROUP BY TICKET_NUMBER ) r ON m.TICKET_NUMBER = r.TICKET_NUMBER/*TICKET_NUMBER MODIFIED_DATE RETURN_DATE ------------- -------------- ----------- 12345 2008-07-03 2008-07-03 67890 2008-06-26 2008-06-24 (2 row(s) affected)*/[/code] KH[spoiler]Time is always against us[/spoiler] |
 |
|
|
|
|