2013-07-18 80 views
0

早上好专家。多服务器查询

我真的需要一些我试图创建的报告。到目前为止,我拥有它,但唯一可以实现它的方法是创建两个单独的报告,然后将它们合并到Excel中。即使这样,Excel也需要很多工作或时间来准备计算。 该报告是供应商的管道报告,但是针对特定的制造商。我正在使用来自2个不同服务器的2个查询。

  • 查询1。 “机会”上的所有产品。我将列出部件号,成本和销售。

  • 查询2。供应商数据库的所有产品。我只拉我关心的制造商。它将列出部件号,制造商名称和列表。我还必须修改制造商名称以保持一致。例如思科可以是“思科软件”,“思科硬件”,“思科授权”,我需要这个只是CISCO。我用CASE声明来处理这个问题。我想根据标价报告。该查询最多可以有20万行。

在Excel中我把查询和做一个VLOOKUP相匹配的部件号,并把制造商和价格表。然后我可以枢轴转动。

我正在使用tSQL来构建我的查询。

+0

听起来像你需要一个简单的外连接。 T-SQL到目前为止你已经尝试过了什么?你有从一个数据库到另一个数据库的链接服务器? – JamieA

回答

0

理想的情况下,我们可以做一些澄清这里的细节做的,但是有一些简单的假设,我相信,你正在寻找的东西像下面生成匹配的数据集,

此解决方案假定你有一组链接服务器的,

SELECT Q1.PartNumber, Q1.Cost, Q1.Sell, Q2.PartNumber, Q2.ManufacturerName, Q2.List 
FROM (SQL to generate results for Query 1) AS Q1 
INNER JOIN (SQL to generate results for Query 2) AS Q2 
ON Q1.PartNumber = Q2.PartNumber 

这将有效地返回两个数据集,并加入他们在一起会得到你,你可以运行在Excel数据透视点。

2

要在一个查询中执行此操作,您需要设置一个链接服务器。我会检查你公司的DBA,看看他们是否愿意设置,或者如果你有管理员访问这些服务器,你可以自己设置(here是关于为SQL Server 2008设置链接服务器的信息。一旦完成,您将使用4部分命名引用不同的服务器,数据库和表格,然后加入部件号,然后处理其余的魔法。另一个选择是使用SQL Server集成服务来加入你的2个数据集。

如果你发布了你的2个查询,这将有所帮助