2016-04-25 73 views
0

我是SQL查询字段中的新成员,但我可以执行一些查询。我想在表格行中添加相关数据并将它们显示在同一列中。下面是包含数据的表:如何添加来自不同行的数据并将它们显示为sql查询中的一行的列

enter image description here

任何帮助将不胜感激。在此先感谢

+3

枢纽。按用例表达式来做一个组。 – jarlh

+0

考虑如何处理表示层/应用程序级代码中的数据显示问题,假设您有这样的问题(例如,对一个有序数组采用简单的PHP循环)。 – Strawberry

+0

每个学生只有3分? – keronconk

回答

0

如果实际上只有3个问题,并假设表被评为学生,你可以做这样的事情:

select studentid AS Student, 
(select Questionpoints from Student where studentid = a.studentid and Questionid = 8) AS Qn1, 
(select Questionpoints from Student where studentid = a.studentid and Questionid = 9) AS Qn2, 
(select Questionpoints from Student where studentid = a.studentid and Questionid = 10) AS Qn3 
from Student as a 
group by studentid; 
+0

注意:我稍微改变了列名,所以不要只是复制和过去;) –

+0

谢谢@理查德。这适用于已知的Questionid,我想问问是否有可能在Questionid未知时执行此操作。以上表格仅适用于一门课程,如果我为下一门课程添加问题,则会向各个学生添加新的课程表。我可以在不指定Questionid的情况下执行此操作谢谢 – Jef

+0

@Jef 如果它仍然只有3个问题,只是不同的问题,你可以用'从第一个问题的学生顺序通过问题点限制1选择问题点'来替换具体值并且'从问题点的学生顺序中选择问题点限制1 OFFSET 1'为第二个问题,依此类推。这很简单,但可能不是一个非常优雅的解决方案,可能性能很差。 –

相关问题