右边的一个简单的问题,我可以输入到透视表的nText? (SQL Server 2005中)Sql Server 2005数据透视表是否将nText传递给它?
我所拥有的是它记录了答案例如由以下元素的问卷调查表:在n文本举行
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
有了答案。反正什么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)
我通常不会这样做,但这是一个遗留数据库,我还没有建立(是我的老板)。我会尽力使它在某个时候更新,但现在真的没有时间了 – manemawanna 2010-03-29 09:43:20