Я пытаюсь преобразовать столбец в строки. Я начинаю PIVOT. Пробовали ниже кода, но ошибка возникает как 'Ошибка преобразования типа данных nvarchar в datetime. Неверное значение «Tot_GPS_Cnt» предоставляется в операторе PIVOT.Несколько столбцов в SQL Server 2008
CREATE TABLE #tbl_Res1
(
CallDate DATETIME,
Tot_GPS_Cnt INT,
Tot_GND_Cnt INT,
Per_Ratio NUMERIC(10,2)
)
INSERT INTO #tbl_Res1
SELECT '2015-04-24 00:00:00.000','40','26','65.00' UNION ALL
SELECT '2015-04-25 00:00:00.000','22','14','63.64' UNION ALL
SELECT'2015-04-26 00:00:00.000','27','21','77.78' UNION ALL
SELECT'2015-04-27 00:00:00.000','41','23','56.10'
Источник Таблица
Желаемая Выход
Я попытался с ниже запроса бушель неудачу. Пожалуйста помоги. Заранее спасибо
SELECT CallDate=col, Tot_GPS_Cnt, Tot_GND_Cnt, Per_Ratio
FROM
(select CallDate, col, value from #tbl_Res1
cross apply
(
SELECT 'Tot_GPS_Cnt',cast(Tot_GPS_Cnt as varchar(10)) UNION ALL
SELECT 'Tot_GND_Cnt', cast(Tot_GND_Cnt as varchar(10)) UNION ALL
SELECT 'Per_Ratio', cast(Per_Ratio as varchar(10))
) c (col,value)
) d
PIVOT
(
max(value) for CallDate in ([Tot_GPS_Cnt], [Tot_GND_Cnt], [Per_Ratio])
) as piv
Большое спасибо за решение. Можем ли мы сделать эту динамику, потому что данные таблицы используются для изменения/роста. –
@ RonakVyas Ну, это другой вопрос. Вы можете взглянуть на * динамический поворот *. Здесь вы найдете множество примеров в SO. –
Хорошо, конечно. Большое спасибо. Я буду работать над этим, чтобы сделать динамичным. –