将hotel和Order数据倒入MSSQL进行查询

来源:互联网 发布:淘宝发券机器人 编辑:程序博客网 时间:2024/06/07 08:29
  

 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文件中粘贴后的结果为:

再调整一下格式,最后的结果文件看起来是这个样子的:

以后如果Vicky对于Tag词方面还有别的需求的,也可以在这两个表的基础上来做查询。
原创粉丝点击