Правильный ответ на простой вопрос: можно ли ввести nText в сводную таблицу? (SQL Server 2005)
У меня есть таблица, в которой записаны ответы на вопросник, состоящий из следующих элементов, например:
UserID QuestionNumber Answer
Mic 1 Yes
Mic 2 No
Mic 3 Yes
Ste 1 Yes
Ste 2 No
Ste 3 Yes
Bob 1 Yes
Bob 2 No
Bob 3 Yes
Ответы хранятся в текстовом формате. Как бы то ни было, для идентификатора сводной таблицы:
UserID 1 2 3
Mic Yes No Yes
Ste Yes No Yes
Bob Yes No Yes
У меня есть некоторый тестовый код, который создает сводную таблицу, но в данный момент он просто показывает количество ответов в каждом столбце (код можно найти ниже). Так что я просто хочу знать, возможно ли добавить nText в сводную таблицу? Когда я попробовал, это вызывает ошибки, и кто-то заявил на другом сайте, что это невозможно, поэтому я хотел бы проверить, так ли это на самом деле.
Просто для дальнейшего использования у меня нет возможности изменить базу данных, так как она связана с другими системами, которые я не создал или не имею доступа.
Вот код SQL, который у меня есть в настоящее время ниже:
DECLARE @query NVARCHAR(4000)
DECLARE @count INT
DECLARE @concatcolumns NVARCHAR(4000)
SET @count = 1
SET @concatcolumns = ''
WHILE (@count <=52)
BEGIN
IF @COUNT > 1 AND @COUNT <=52
SET @concatcolumns = (@concatcolumns + ' + ')
SET @concatcolumns = (@concatcolumns + 'CAST ([' + CAST(@count AS NVARCHAR) + '] AS NVARCHAR)')
SET @count = (@count+1)
END
DECLARE @columns NVARCHAR(4000)
SET @count = 1
SET @columns = ''
WHILE (@count <=52)
BEGIN
IF @COUNT > 1 AND @COUNT <=52
SET @columns = (@columns + ',')
SET @columns = (@columns + '[' + CAST(@count AS NVARCHAR) + '] ')
SET @count = (@count+1)
END
SET @query = '
SELECT UserID,
' + @concatcolumns + '
FROM(
SELECT
UserID,
QuestionNumber AS qNum
from QuestionnaireAnswers
where QuestionnaireID = 7
) AS t
PIVOT
(
COUNT (qNum)
FOR qNum IN (' + @columns + ')
) AS PivotTable'
select @query
exec(@query)