Access中两个任务列表的SQL查询-如何获得正确的“分配给”?

Access中两个任务列表的SQL查询-如何获得正确的“分配给”?,sql,ms-access,sharepoint,sharepoint-2010,ms-access-2010,Sql,Ms Access,Sharepoint,Sharepoint 2010,Ms Access 2010,大家可能都知道,Sharepoint任务列表有一个分配给的列。当我在Access中导入任务列表时,会得到该列表的一个表和另一个表UserInfo,以及该列表的用户,这些用户与Sharepoint中该列表的权限下列出的用户相同。此UserInfo表包含用户id、标题、帐户、电子邮件、部门等数据 当我运行以下查询时: 挑选* 第一名 联合所有 挑选* 从第二名单 “分配给”字段将从UserInfo更改为此人的ID。它们的名称位于UserInfo表的标题字段下 我应该如何修改SQL查询以将标题放置在A

大家可能都知道,Sharepoint任务列表有一个分配给的列。当我在Access中导入任务列表时,会得到该列表的一个表和另一个表UserInfo,以及该列表的用户,这些用户与Sharepoint中该列表的权限下列出的用户相同。此UserInfo表包含用户id、标题、帐户、电子邮件、部门等数据

当我运行以下查询时:

挑选*

第一名

联合所有

挑选*

从第二名单

“分配给”字段将从UserInfo更改为此人的ID。它们的名称位于UserInfo表的标题字段下

我应该如何修改SQL查询以将标题放置在Assigned to列中

编辑:下面是一个例子

在FirstList中,我有一行具有以下值:Dothis John Doe Not start对应于标题、分配给和状态列。在UserInfo中,我有一行30个johndoef2rdf作为ID、Title和Account的值

在我完成联合后,我将看到值30,而不是John Doe。那么,我如何指定我希望看到的是标题的值,而不是ID的值呢?类似于[Assigned To].Title的内容?不幸的是,这不起作用

一个查询组合了两个相似的数据集。Union的一个要求是两个集合中的列数相同,并且第一个集合中每列的数据类型与第二个数据集中匹配列的数据类型匹配

根据您对问题的描述,听起来您正在比较两个数据集,它们具有相同的列数,且所有数据类型都相同,但第二个数据集中的元数据顺序不正确或与第一个数据集中的元数据不匹配

如果希望第一个列表中的列与第二个列表中的列匹配,则需要显式指定顺序,而不是依赖SELECT*语法。换句话说,如果第一个列表中的列是ColA、ColB、ColC,而第二个列表中的列是ColB、ColC、ColA,那么您需要将查询更改为:

SELECT ColA, ColB, ColC
FROM FirstList
UNION ALL
SELECT ColA, ColB, ColC
FROM SecondList;

否则,假设数据类型都是相同的,那么ColB数据可能会落在ColA列下,ColC数据会落在ColB中,等等……

不,您误解了我的问题:假设ColB是指定给列的。分配给列的值来自UserInfo表。当我查看FirstList表时,我可以看到Assigned To列中的名称。然而,在工会之后,我看到了这些名字的ID。为了更清楚,我用一个例子对我的问题进行了编辑。我想你可能误解了工会的运作方式。。。联合将一个集合中的行结果与第二个集合中的行结果相结合,并使用两个集合中定义的相同元数据结构。因此,根据您的附加信息,查询正在按预期工作。你是不是更想加入?所以你希望你的第二个列表显示为新的列,而不是像第一个列表一样列在同一行中?是的,我知道联合是如何工作的。这甚至与第二份名单无关。这是因为在联合之后,赋值给列的内容与原始列表中的内容不同。在原始列表中,它有来自UserInfo表的Title列的数据。之后,他们有来自UserInfo的ID列的数据。在您的示例中,只有一列在两个集合之间匹配。如果您只希望合并这些字段,那么您应该只通过显式列出这两条语句的SELECT TITLE来拉入这些字段。并集将只匹配第一列与第一列,第二列与第二列,以此类推。。。它无法判断第一个列表中的列1是否与第二个列表中的列2相同。只需了解,通过在标题旁边添加任何其他字段,您将无法避免合并不同的数据。