MS Access - 将来自多个记录的数据合并为单个记录

MS Access - Combine Data from Multiple Records into Single Record

提问人:LDoan 提问时间:11/16/2023 最后编辑:June7LDoan 更新时间:11/17/2023 访问量:47

问:

我有一个 SharePoint 列表,它允许来自组织中各个团队的用户提交他们对给定项目的影响级别。该列表经过配置,以便将每个团队的影响级别捕获在他们自己的单独列中。由于我的配置方式,同一项目的数据中有多行,每行在提交记录的团队的列中仅包含一个影响值。我想将每个项目的所有记录合并到一个合并行中,其中包含每个团队提交的影响。例如:

**从 SharePoint 列表中收集和显示的数据: **

Data from SharePoint List

**合并记录的预期最终结果: **

End Result

这应该使用访问查询还是以某种方式联接数据的新表来完成?

谢谢!

我尝试过在线搜索解决方案,但大多数都提供了将值连接到单个列而不是将多行合并为一条记录的说明。

ms-access 合并 sharepoint-list

评论

0赞 June7 11/17/2023
数据应以格式化的文本表格形式提供,而不是以图像形式提供。
0赞 Andre 11/17/2023
您也可以尝试在表上运行交叉表查询向导。

答:

1赞 June7 11/17/2023 #1

使用 Max() 函数的简单聚合查询应该可以实现此输出。

SELECT ProjectID, ProjectName, Max(JanitorStaffImpact) AS MJSI,
Max(PaintingTeamImpact) AS MPTI, Max(ManagementTeamImpact) AS MMTI
FROM tablename
GROUP BY ProjectID, ProjectName;

正如注释中建议的那样,也可以通过 CROSSTAB 完成。

TRANSFORM First(Nz([JanitorStaffImpact],Nz([PaintingTeamImpact],[ManagementTeamImpact]))) AS D
SELECT ProjectID, ProjectName
FROM tablename
GROUP BY ProjectID, ProjectName
PIVOT Sub & " Impact" IN("Janitor Staff Impact", "Painting Team Impact", "Management Team Impact";

在另一个答案中提出了第三种方法。

评论

0赞 LDoan 11/17/2023
非常感谢 - 这是我正在寻找的解决方案,我已将您的回复标记为已接受。快速跟进 - 我有什么方法可以在不显示双引号的情况下返回带有空格的列标题。例如,如果我想在列标题中以“Janitor Staff Impact”的形式返回一列,是否可以不加引号?
0赞 June7 11/17/2023
为什么会有引号?如果要在字段名称中使用空格,请用括号括起来。但是为什么?可以在报告的标签中做任何你想做的事情。我总是建议不要在命名约定中使用空格或标点符号/特殊字符进行设计。
0赞 Shahram Alemzadeh 11/17/2023 #2

也可以用以下方式编写:joined query

SELECT A.ProjectID , A.ProjectName , A.TeamA , B.TeamB, C.TeamC  
FROM (
           (SELECT * FROM DATA WHERE Submitter="Team A") AS A
INNER JOIN (SELECT * FROM DATA WHERE Submitter="Team B") AS B ON A.ProjectID=B.ProjectID)
INNER JOIN (SELECT * FROM DATA WHERE Submitter="Team C") AS C ON A.ProjectID=C.ProjectID