将相似的记录结合到MS Access中的单个记录
我正在使用MS Access 2016,在具有学生结果的表上:所以这些字段仅仅是studentID,Test和Score。出于报告目的,我需要生成一个CSV文件,其中有一个学生的TestScore值全部在一行中。所以,如果我有:将相似的记录结合到MS Access中的单个记录
StudentID: Test: TestScore:
A123 TestA 80
A123 TestB 90
B123 TestA 70
B123 TestB 95
如何生成的表用于出口,看起来像:
StudentID: TestA: TestB:
A123 80 90
B123 70 95
我不认为交叉表会工作,因为没有在表中所有的学生都已经采取了一切相同的测试。有几千个案例。我也明白,可能无法通过MS Access中的SQL。
非常感谢任何有用的建议。
您可以添加交叉表查询的ColumnHeadings属性,包括所有的测试 - “种皮”;“TESTB”; ...
是否有只有一组数字或会这样发展?
谢谢。这将是越来越多的案件。我不认为你的答案会起作用,因为表中的字段名称只是“测试”。如果字段名称是TestA,TestB等,我可以将它们添加为字段,但是我认为我不需要交叉表。但如果我误解了你的答案,请澄清,我会尝试。 – DrL
它适用于本年度的月份,因为只有12个,因此您可以对其进行硬编码,但如果您的测试是动态数字,则此方法不起作用 –
所以谢谢你安德烈和Alex指导我该解决方案,这对于原来的问题的工作:
表在这里的名字是“输出”。
TRANSFORM Last(Output.[TestScore]) AS LastOfTestScore
SELECT Output.[StudentID]
FROM [Output]
GROUP BY Output.[StudentID]
PIVOT Output.[Test];
为别人寻找一个类似的解决方案,请注意,我用的“最后”,而不是其他的东西(你可能首先想,计数等)。
即使没有学生进行过特定的测试,您还是希望每个测试都有一个专栏? – June7
这是交叉表查询的展示方案。结果中的空单元格没有问题。 – Andre
@ June7:是的,我想要包含所有案例(测试)。部分报告将用于识别缺失值(例如,未完成测试的学生)。 – DrL