我正在尝试使用transpose / pivot(SQL Server 2008),但MAX函数和TRANSFORM都不适用于我。有没有办法以不同的方式实现这一目标,或者使用MSEXCEL?
这就是我所拥有的
`
<table>
<tr><td>Name</td><td>Question</td><td>Answer</td></tr>
<tr><td>Respondent 1</td><td>Question 1</td><td>Answer</td></tr>
<tr><td>Respondent 1</td><td>Question 2</td><td>Answer</td></tr>
<tr><td>Respondent 1</td><td>Question 3</td><td>Answer</td></tr>
<tr><td>Respondent 1</td><td>Question 4</td><td>Answer</td></tr>
<tr><td>Respondent 1</td><td>Question 5</td><td>Answer</td></tr>
<tr><td>Respondent 2</td><td>Question 1</td><td>Answer</td></tr>
<tr><td>Respondent 2</td><td>Question 2</td><td>Answer</td></tr>
<tr><td>Respondent 2</td><td>Question 3</td><td>Answer</td></tr>
<tr><td>Respondent 2</td><td>Question 4</td><td>Answer</td></tr>
<tr><td>Respondent 2</td><td>Question 5</td><td>Answer</td></tr>
<tr><td>Respondent 3</td><td>Question 1</td><td>Answer</td></tr>
<tr><td>Respondent 3</td><td>Question 2</td><td>Answer</td></tr>
<tr><td>Respondent 3</td><td>Question 3</td><td>Answer</td></tr>
<tr><td>Respondent 3</td><td>Question 4</td><td>Answer</td></tr>
<tr><td>Respondent 3</td><td>Question 5</td><td>Answer</td></tr>
<tr><td></td></tr>
</table>
`
我想最终得到以下内容:
`
<table>
<tr><td>Name</td><td>Question 1</td><td>Question 2</td><td>Question 3</td><td>Question 4</td><td>Question 5</td></tr>
<tr><td>Respondent 1</td><td>text</td><td>text</td><td>text</td><td>text</td><td>text</td></tr>
<tr><td>Respondent 2</td><td>text</td><td>text</td><td>text</td><td>text</td><td>text</td></tr>
<tr><td>Respondent 3</td><td>text</td><td>text</td><td>text</td><td>text</td><td>text</td></tr>
</table>
`
这是我尝试过但未通过的查询: 选择 答辩, MAX(问题='问题1'然后回答ELSE NULL END)AS'问题1', MAX(问题='问题2'然后回答错误结束时的情况)AS'问题2' 从表 GROUP BY被投诉人
我认为Excel可能是最好的解决方案,任何想法?
答案 0 :(得分:1)
您可以在sql中使用数据透视表:
Select * from tablename
Pivot( max(Answer) for Question in ([Question1], [Question2],[Question3],[Question4],[Question5])) as pivotTable