I'm trying to write a pivot for my ticketing system. Here's the query: select incident_number, taskid_mtsa, dispatch, acknowledged, onsite from ( -- Subquery to return dispatch timestamps as pivoted rows select incident_number, work_log_date, taskid_mtsa, -- translate worklog descriptions to easy to use names datetype = case when DETAILED_DESCRIPTION like 'Dispatch Created:%' then 'Dispatch' when DETAILED_DESCRIPTION like 'Dispatch Assigned: ETA%' then 'Acknowledged' when DETAILED_DESCRIPTION like 'Dispatch On Site:%' then 'Onsite' end, -- Use partitioning to zero in on the task id and order by timestamp. rn = row_number() over ( partition by incident_number, taskid_mtsa order by submit_date ) from or_rcip.dbo.worklog where DETAILED_DESCRIPTION like 'Dispatch%:%' and INCIDENT_NUMBER = 'INC000002100564' ) as src -- Use pivoting to get the individual rows into columns. pivot ( min(work_log_date) for datetype in ([Dispatch], [Acknowledged], [Onsite]) ) as pvt
The inner select produces this table:incident_number work_log_date taskid_mtsa datetype rnINC000002100564 2012-02-17 20:04:16.000 TAS000000033205 Dispatch 1INC000002100564 2012-02-17 21:28:56.000 TAS000000033205 Onsite 2INC000002100564 2012-02-17 21:30:55.000 TAS000000033205 NULL 3INC000002100564 2012-02-21 20:07:47.000 TAS000000033537 Dispatch 1INC000002100564 2012-02-21 20:24:56.000 TAS000000033537 Acknowledged 2INC000002100564 2012-02-21 20:25:08.000 TAS000000033537 Onsite 3INC000002100564 2012-02-21 20:26:09.000 TAS000000033537 NULL 4
After pivoting I get:incident_number taskid_mtsa dispatch acknowledged onsiteINC000002100564 TAS000000033205 2012-02-17 20:04:16.000 NULL NULLINC000002100564 TAS000000033205 NULL NULL 2012-02-17 21:28:56.000INC000002100564 TAS000000033205 NULL NULL NULLINC000002100564 TAS000000033537 2012-02-21 20:07:47.000 NULL NULLINC000002100564 TAS000000033537 NULL 2012-02-21 20:24:56.000 NULLINC000002100564 TAS000000033537 NULL NULL 2012-02-21 20:25:08.000INC000002100564 TAS000000033537 NULL NULL NULL
What I want is:incident_number taskid_mtsa dispatch acknowledged onsiteINC000002100564 TAS000000033205 2012-02-17 20:04:16.000 NULL 2012-02-17 21:28:56.000INC000002100564 TAS000000033537 2012-02-21 20:07:47.000 2012-02-21 20:24:56.000 2012-02-21 20:25:08.000
How should I change my query to achieve this result?