将类似记录组合到MS Access中的单个记录

时间:2017-09-14 23:43:06

标签: ms-access ms-access-2016

我正在使用MS Access 2016,在具有学生成绩的桌子上:所以这些字段只是studentID,Test和Score。出于报告目的,我需要生成一个CSV文件,其中包含学生的TestScore值。如果我有:

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实现。

非常感谢您提供任何有用的建议。

2 个答案:

答案 0 :(得分:0)

您可以添加交叉表查询的ColumnHeadings属性,包括所有测试 - " TestA&#34 ;;" TestB&#34 ;; ...

是否只有一组数字还是可以增长?

答案 1 :(得分:0)

非常感谢安德烈和亚历克斯指导我解决这个原始问题的解决方案:

此处的表名是“输出”。

TRANSFORM Last(Output.[TestScore]) AS LastOfTestScore
SELECT Output.[StudentID]
FROM [Output]
GROUP BY Output.[StudentID]
PIVOT Output.[Test];

对于寻找类似解决方案的其他人,请注意我使用的是“Last”而不是其他内容(您可能需要First,Count等)。