我正在尝试使用动态列从视图填充数据透视表但不确定如何进行此处 - 这是表数据示例 -
question | userid | assessment_date| score
---------------------------------
Q1 1 2014-01-12 12:16:26.870 40
Q1 1 2014-01-14 12:28:38.943 40
Q1 1 2014-01-03 11:13:35.527 85
Q1 2 2014-01-09 11:16:19.450 20
Q1 2 2014-01-11 12:11:18.720 20
Q10 1 2014-01-14 12:28:38.943 70
Q10 1 2014-01-03 11:13:35.527 35
Q10 1 2014-01-11 12:11:18.720 35
Q10 2 2014-01-12 12:16:26.870 35
Q11 2 2014-01-11 12:11:18.720 28
Q11 2 2014-01-12 12:16:26.870 28
Q11 2 2014-01-14 12:28:38.943 28
Q12 2 2014-01-12 12:16:26.870 24
Q12 2 2014-01-11 12:11:18.720 64
现在我想显示十大问题,得分最高 -
question | 11-01-2014 | 12-01-2014 | 14-01-2014
Q1 | 70 | 60 | 65
Q3 | 85 |45 | 75
Q7 |87 |54 | 63
我很抱歉代码格式不好,希望它能说明我想要实现的目标。
抱歉问题基于时间戳是唯一的,我错过了一个链接到用户表的列userid。
提前致谢。
答案 0 :(得分:1)
像这样的东西应该让你开始,它是用透视表的一般格式编写的,但它是空气代码,所以你可能需要改变它。
SELECT question, '2014-01-11','2014-01-12','2014-01-14'
FROM
(SELECT question, assessment_date, score FROM myTableName) AS SourceTable
PIVOT
(
SELECT SUM(score) as SummedScore,
FOR assessment_date IN ('2014-01-11','2014-01-12','2014-01-14')
) AS PivotTable