日期:2014-05-17  浏览次数:20476 次

别人叫我阿汤哥_汤姆克鲁斯请进,刚刚那个求平均分求教
有点小问题,因为题目是随机从题库里面抽出来的,就是投票的时候,投了别的题目,而该Tid没有分数的话
平均分就变成NULL了,但是题目却还是显示了出来。


SQL code
DECLARE @sql VARCHAR(max),@col_name VARCHAR(max)

SELECT @sql=ISNULL(@sql+',','')+QUOTENAME([topics]) FROM tb  
GROUP BY [topics]

SELECT @col_name=ISNULL(@col_name+',','')+'CAST('+QUOTENAME([topics])+' AS DECIMAL(9,2)) AS '+QUOTENAME([topics]) FROM tb 
GROUP BY [topics]
EXEC('
SELECT tid,'+@col_name+' FROM 
(
    SELECT topics,topics_scores=topics_scores*1.0,tid FROM tb 
)a
PIVOT (AVG([topics_scores]) FOR [topics] IN('+@sql+')) b
')



而且这个源码也看得不是太懂。。。能不能挑重点解释一下。

------解决方案--------------------
晕,被点名了,你存在什么问题?
这个题目没有分数的不显示?
那你的列数不是就不固定了?还是要怎么处理