Vicky的TAG词关联有了初步的成果,得到了各个酒店关联tag的情况,其信息保存在了Hotel这个Sheet上。如图:
同时酒店的预订量保存在了Order这个sheet上。如图:
现在希望能把两个sheet上的数据合并起来。在Hotel这个sheet上把预订量也对应的显示出来。
我首先想到的是用Vlookup来做,不过不知是不是因为数据量太大的缘故,即使是把两个sheet上的酒店ID转换成数值型,并都进行了排序,但还是不能正确的查找到匹配的酒店ID。
于是决定把数据导入到SQL Server中再来处理。使用SQL Server导入和导出向导来完成这一任务:
在开始菜单中找到SQL Server导入和导出向导并运行它:
会出现欢迎的界面:
点击“下一步”,来到选择数据源的界面:
在数据源一项上选择:Microsoft Excel; 并通过“浏览”按键选取需要导入的Excel文件。选择“首行包含列名称”的选项。点击“下一步”。
在“选择目标”的界面上选择目标数据库“Expedia”, 点击“下一步”
选择“Hotel$”和“Order$”做为源表。将目标数据表名更改成如下图所示:
点击“编辑映射”按钮来打开编辑映射的界面:
先看Hotel表的情况,原始的映射关系是:
对于类型进行修改,把酒店ID修改成bigint,其余的各个tag词的数量用smallint也就够用了。修改后的列映射是如下的样子:
对于Order表也是一样的情况,原始的映射关系是:
修改后的映射关系改成:
使用“确定”按钮来保存对于映射关系的修改。回到之前的“选择源来和源视图”的界面,点击“下一步”。来到“查看数据类型映射”的界面:
对于出错是的处理动作,全都设置成“忽略”。因为从上图也可以看出。标有黄色惊叹号的条目上做了类型转换,并没有会出错的转换方式。点击“下一步”。
在“运行包”的界面上点击“下一步”。
在“完成该向导”的界面上点“完成”。
导入和导出向导会开始执行这个导入的任务,经过大约10-15秒以后,执行的结果如下图所示:
至此,这个导入的工作就算是正常完成了。
下面我们打开SQL Server Management Studio进行相关的查询,如果Expedia数据库已经在SQL Server Management Studio中打开了,请刷新一下:
我们先来查看一下Hotel和Order这两张新导入的表数据,右键点击Hotel表,选择“选择前1000行”:
得到的结果如下:
好,看起来数据都成功导入了。用同样的方法检验一下Order这张表:
现在数据已经各自在hotel和order表里了,我们就可以用SQL语句来查询了。使用的查询语句是:
SELECT [酒店ID]
,[酒店名称]
,[所在城市]
,[关联Tag数量]
,[关联Tag词]
,[服务热情]
,[干净整洁]
,[经济实惠]
,[硬件条件好]
,[交通便利]
,[购物方便]
,[筛选结果]
,[Order Counts]
FROM [Expedia].[dbo].[Hotel] AS H
LEFT JOIN
[Expedia].[dbo].[Order] AS O
ON H.[酒店ID] = O.[Hotel ID]
ORDER BY O.[Order Counts] DESC;
运行的结果如下图所示:
现在只需要把结果集保存到EXCEL中就可以了。这里推荐使用“连同标题一起复制”这个右键菜单功能,将结果集连同列名一起复制,再新建一个EXCEL文件,在里面粘贴即可。当然你可以使用菜单中的“将结果另存为”这个选项,结果只能保存成CSV文件,而且没有标题。
在EXCEL文件中粘贴后的结果为:
再调整一下格式,最后的结果文件看起来是这个样子的: