2014-09-17 4 views
0

Нужна помощь поворотного некоторых данныхSQL Server 2008 - данные поворотных

SELECT 
    [contact_list_name] as 'Table' 
    ,[ov_number_dialed] as 'Number Dialed' 
    ,convert(date, [time_of_contact], 101) as 'Date' 
    ,convert(time, dateadd(hour, -7,[time_of_contact]), 108) as 'Time' 
    ,agent_full_name as 'Agent' 
    ,[response_status] as 'Disp' 
FROM 
    [meldb].[dbo].[cl_contact_event] 

, который дает мне результаты, как это:

enter image description here

Я хочу, чтобы повернуть наружу или показать результаты, так что дисп находится в линии, как

enter image description here

Любые мысли?

+0

У Вас есть максимальное количество 'disp' записей? Если это так, вы можете использовать 'pivot' или' max' с 'case'. Если нет, вам нужно использовать 'dynamic sql'. Об этом сообщается множество сообщений SO. – sgeddes

+0

Идти с максимальным количеством 6 сообщений о запрете, не думаю, что мне нужно больше, чем это. Я просто не могу получить стержень, чтобы работать в любом случае ... – lookslikeanevo

+0

Знаете ли вы, что эти 6 значений - всегда 'DAM',' CBS' и т. Д.? Если они динамичны, вы вынуждены использовать 'dynamic sql'. – sgeddes

ответ

1

Учитывая ваши комментарии, простой способ поворота является использование max с case:

select 
    [contact_list_name] as 'Table' 
    , [ov_number_dialed] as 'Number Dialed' 
    , convert(date, [time_of_contact], 101) as 'Date' 
    , convert(time, dateadd(hour, -7,[time_of_contact]), 108) as 'Time' 
    , agent_full_name as 'Agent' 
    , max(case when [response_status] = 'DAM' then response_status end) as 'Disp1_DAM' 
    , max(case when [response_status] = 'DNA' then response_status end) as 'Disp2_DNA' 
    ... 
FROM [meldb].[dbo].[cl_contact_event] 
GROUP BY 
    [contact_list_name] 
    , [ov_number_dialed] 
    , convert(date, [time_of_contact], 101) 
    , convert(time, dateadd(hour, -7,[time_of_contact]), 108) 
    , agent_full_name 
+0

Как я могу объяснить, что изменения, изменяющие заказы, основаны на том, когда они используются? Я ценю вашу помощь – lookslikeanevo