通过第三个表加入2个表 - 一个表来统治它们

时间:2013-01-27 00:03:54

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

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

我是Access的新手但是非常渴望学习。我做了很多关于Excel的报告,但厌倦了在我的数据表上有太多数据时有多慢。所以我转移到Access。

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

1°1st 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°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°3rd excel表是一份包含日期,点击次数,广告系列名称的报告。 “ggle Report”(从ggle广告中导出)
例如:
日期活动名称点击次数01.01.2013活动名称1 12
01.01.2013活动名称1 46
01.01.2013活动名称2 16
01.02.2013活动名称2 35
01.02.2013活动名称2 23
等...

我正试图通过第一个将我的第2和第3张桌子合并在一起,以便在Access中获得这样的表:
日期国家/地区活动名称计数RegID点击次数
01.01.2013美国战役名称1 21 12
01.01.2013美国战役名称2 23 35
01.02.2013美国战役名称1 22 46
等...

我不知道该怎么做。 我已经尝试过表分析器将我的第一个表分成3个表(国家,广告系列名称和跟踪代码),然后通过跟踪代码将它连接到我的第二个表,然后第一个表通过广告系列连接到第三个表,然后最终使用第一个表连接第二个和第三个。

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

有人会知道怎么做吗?

以下是表格示例和所需输出的链接:

example of tables

1 个答案:

答案 0 :(得分: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数据库,
  • 点击Queries选项卡,
  • 点击新图标,
  • 选择设计视图,
  • 关闭添加表格对话框,
  • 点击SQL按钮(左上角),
  • 粘贴此代码,
  • 根据需要更改名称,
  • 点击红色感叹号(运行)图标,
  • 带回你的发现......

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

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