我不仅仅是 Access 2010 的新手,但肯定不是专家。我每天都在使用 Access,但这个问题让我很困惑。
我有一张表需要查询以检索一组组、子组和所有可能的子成员。该表的布局如下:
所需组 | 当前田纳西州 | 冲刺电话号码 | 姓氏 | 名字
5553215255 | 5553210001 | 4143210009 | 威尔鲍勃
5553215255 | 5553210002 | 4143210008 | 加西亚·杰瑞
5553215255 |5553210003 | 4143210007 | 亨德里克斯吉米
5553215255 | 5553210004 | 4143210006 | Peds 页面
5553210004 | 3144230009 | 4143210005 | 现金强尼
5553210004 | 3144230008 | 4143210003 | 莫里森吉姆
5553210004 | 3144230007 | 4143210002 |
贝多芬路德维希 5553210004 | 3144230911 | 4143210001 | 急救人员页面
3144230911 | 6362341101 | 4143210099 |弹奏者乔
3144230911 | 6362341101 | 4143210098 | 水星房地美
3144230911 | 6362341101 | 4143210097 |普雷斯利·埃尔维斯
3144230911 | 6362341101 | 4143210096 | 波普大
定义的字段:
- Desired GROUP:基于角色或其他标准的一组人。寻呼时,此号码将向给定组的成员发送寻呼。
- 当前 TN:给定成员的电话。成员可以是一个人或一个 Desired GROUP
- Sprint 电话号码:有些人会用 Sprint 电话替换他们的寻呼机。
- 姓氏:一个人的角色或姓氏。有时是组名或类似名称。
- 名字:一个人的名字
我需要一个查询,在运行时返回所有分页组的所有成员的列表。假设我向医生发送页面。寻呼医生还寻呼 Peds 的所有成员,这反过来又寻呼紧急 Peds 的所有成员结果将显示所有医生成员、所有 Peds 成员(除组名)和所有被寻呼的紧急 Peds 成员的初始页面。注意 Peds Page 和 Emergency Peds Page 被排除在外。此处图解:
所需组 | 当前田纳西州 | 冲刺电话号码 | 姓氏 | 名字
5553215255 | 5553210001 | 4143210009 | 威尔鲍勃
5553215255 | 5553210002 | 4143210008 | 加西亚·杰瑞
5553215255 |5553210003 | 4143210007 | 亨德里克斯吉米
5553210004 | 3144230009 | 4143210005 | 现金强尼
5553210004 | 3144230008 | 4143210003 | 莫里森吉姆
5553210004 | 3144230007 | 4143210002 |
贝多芬路德维希 3144230911 | 6362341101 | 4143210099 |弹奏者乔
3144230911 | 6362341101 | 4143210098 | 水星房地美
3144230911 | 6362341101 | 4143210097 |普雷斯利猫王
3144230911 | 6362341101 | 4143210096 | 波普大
- 一位同事建议手动查询多次,将结果保存到多个表中,然后将所有结果表附加到一个表中。我该怎么做呢?看来这是我在我的水平上很容易理解的解决方案,但我不太明白,尽我所能。
- 除了上述解决方案还有其他方法吗?
- 如果我将第二个类似的表格与第一个进行比较,我还有什么需要知道的吗?第二个成员可能是第一个中的组领导。
提前非常感谢。
编辑以包含评论中的 sql。
SELECT *
FROM (SELECT tbl_group_build.[desired group],tbl_group_build.[current tn],
tbl_group_build.[sprint telephone number],
tbl_group_build.[last name],
tbl_group_build.[first name]
FROM tbl_group_build
UNION
SELECT tbl_Group_build_1.[desired group],tbl_Group_build_1.[current tn],
tbl_Group_build_1.[sprint telephone number],
tbl_Group_build_1.[last name],tbl_Group_build_1.[first name]
FROM tbl_group_build
INNER JOIN tbl_group_build AS tbl_Group_build_1
ON tbl_group_build.[current tn] =
tbl_Group_build_1.[desired group]
UNION
SELECT tbl_Group_build_2.[desired group],tbl_Group_build_2.[current tn],
tbl_Group_build_2.[sprint telephone number],
tbl_Group_build_2.[last name],tbl_Group_build_2.[first name]
FROM (tbl_group_build
INNER JOIN tbl_group_build AS tbl_Group_build_1
ON tbl_group_build.[current tn] =
tbl_Group_build_1.[desired group])
INNER JOIN tbl_group_build AS tbl_Group_build_2
ON tbl_Group_build_1.[current tn] =
tbl_Group_build_2.[desired group]) g