【问题标题】:Join 2 tables via a 3rd one - One table to rule them all通过第三个加入 2 个表 - 一个表来统治它们
【发布时间】:2013-01-10 15:57:33
【问题描述】:

我已经完成了研究,花了几个小时在教程上,但找不到一种易于理解的方法来创建我需要的东西。

我是 Access 新手,但非常渴望学习。我在 Excel 上做了大量的报告,但厌倦了当我的数据表上的数据太多时它会有多慢。所以我转向了 Access。

我有 3 个 Excel 文件,每个文件都有一个表格。

1° 第一个 Excel 表格有一个活动名称列表和与之配套的跟踪代码。
“Campaign-TrackCode”(从软件导出)
例如:
国家/地区         广告系列名称                   跟踪代码
美国                 广告系列名称 1                  us-ad-1-1
美国                 广告系列名称 1                 us-ad-2-1
美国                 广告系列名称 2                 us-ad-1-2
美国                 广告系列名称 2                                                                                                                        us-ad-2-2
美国                 广告系列名称 2                 us-ad-3-2
等等……

2°第二个excel表有日期;注册 ID 和来自哪个跟踪代码“注册”(从软件导出)
例如:
日期           注册 ID                               跟踪代码
01.01.2013     1021                                  us-ad-1-1
01.01.2013     1022                                   us-ad-1-1
01.01.2013     1023                                   us-ad-1-2
01.02.2013     1024                                  us-ad-4-2
01.02.2013     1025                                   us-ad-2-1
等等……

3° 第三个 Excel 表格是一个包含日期、点击次数、广告系列名称的报告。 “ggle 报告”(从 ggle 广告中导出)
例如:
日期                           广告系列名称                 点击次数
01.01.2013                                                                                                       12
01.01.2013                  广告系列名称 1                  46
01.01.2013                  广告系列名称 2                  16
01.02.2013                                                                                                                                           35
01.02.2013                                                                                                                                  23
等等……

我正在尝试通过第一个表将我的第二个和第三个表合并在一起,以便在 Access 中获得这样的表:
日期                  国家/地区              广告系列名称           计数 RegID         点击次数
01.01.2013          美国                     广告系列名称 1              21                        12
01.01.2013          美国                     广告系列名称 2        23                        35
01.02.2013         美国                     广告系列名称 1        22                        46
等等……

我不知道该怎么办。 我已经尝试使用表格分析器将我的第一个表格拆分为 3 个表格(国家、活动名称和跟踪代码),然后通过跟踪代码将其连接到我的第二个表格,然后通过活动将第一个表格连接到第三个表格,然后最终使用第一个表连接第二个和第三个。

不起作用。 因为我是新手,所以能够一步一步地创建决赛桌会很棒。 我对主键和唯一值有点迷茫。 (我开始建立一对多的关系,所以我认为我走在正确的学习道路上)。 我不想更改我的 excel 表格,因为每天在 access 中的导入几乎是完全自动化的。我下载了 3 个报告,然后在访问时根据已保存的规则附加已导入的表以导入这些 Excel 文件。

有人知道怎么做吗?

这是一个包含表格示例和所需输出的链接:

example of tables

【问题讨论】:

    标签: sql database-design ms-access-2007 table-relationships object-relationships


    【解决方案1】:

    您能否尝试运行此查询(根据需要更改表/字段名称)并查看是否是这样?当我们确定这是您想要实现的目标时,我将稍后编辑此答案。 ;)

    SELECT 
      Table2.Date, 
      Table1.Country, 
      Table1.[Campaign name], 
      Table2.[Track Code], 
      Table2.[Reg ID], 
      Table3.Clicks
    FROM 
      Table3 INNER JOIN 
      (Table2 INNER JOIN Table1 ON Table2.[Track Code] = Table1.[Track Code]) ON 
      Table3.[Campaign name] = Table1.[Campaign name]
    ORDER BY Table2.Date, Table1.Country, Table1.[Campaign name];
    
    • 复制上面的这个示例 SQL 查询,
    • 打开您的 Access 数据库,
    • 点击查询标签,
    • 点击新建图标,
    • 选择设计视图,
    • 关闭“添加表”对话框,
    • 点击 SQL 按钮(左上角),
    • 粘贴此代码,
    • 根据需要更改名称,
    • 点击红色感叹号(运行)图标,
    • 带着你的发现回来...

    ;)

    编辑:我在查询末尾添加了排序。你当然可以通过交换 ORDER BY 子句中列出的字段来更改排序顺序,添加一些,省略一些,如果你希望它们按降序排序,在字段名称的末尾添加 DESC,用空格分隔(例如:ORDER BY Table2.Date DESC, Table1.Country 让记录首先按日期降序排序,然后按国家升序排序 ASC 这是默认排序顺序)。

    我还建议您在完成 SQL 语法编辑后查看内置查询生成器 (Design View)。您会发现快速构建自己的查询非常有用。复制的 SQL 子句将为您提供一个很好的示例,说明表如何在 WYSIWYG 查询构建器中相互关联。当然,您也可以通过简单地移动事物来更改所有关系、排序顺序、显示顺序。 ;)

    【讨论】:

    • 嗨@TildalWave,感谢您的回答。
      起初,它看起来像我需要的。
      SQL 查询做了正确的连接:
      表 2 表 1 表 3
    • 好的,没问题,但是您能否与我们分享一下我的“可能”解决方案与您期望的不同?它将帮助我们解决您的问题。您的问题处于基本层面,您可以期待这里有成千上万的人愿意并且能够提供帮助,可能很容易,但您必须在您的问题和/或后续 cmets 中更加精确。
    • 是的,谢谢@TildalWave,我正要提供更多信息。这个论坛上的新人,不确定评论格式是如何工作的。所以搞砸了我的第一个答案。
      这里是:
      SQL 查询做了连接
      表 2 通过列 Track Code 连接到表 1,表 3 通过连接到表 1广告系列名称。
      我在表格中有正确的列,但日期、广告系列名称、跟踪代码、注册 ID 和点击次数不匹配。但值似乎几乎是随机的。
    • @JD76 - 关于格式化 cmets,问题:我建议您最初根本不要格式化它们,稍后根据需要添加格式化。即使在编辑帖子时,您也可以通过单击输入字段右下方的help 链接找到格式规则和一些示例。不,出于明显的原因,它不采用 HTML 格式。 ;)
    • 非常感谢@TildalWave。这已经是一个很大的帮助。连接是我需要的。现在我将使用这些数据,看看我是否可以让它有意义。干杯。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多