一个简单的问题,我可以将 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
答案保存在 nText 中。无论如何,像数据透视表这样的 id 是:
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)