如何将多个视图合并到一个视图中

问题描述:

我有一个查询有多个select语句来生成几个不同的结果集。它基本上是一组4个独立的查询。但是,我需要需要这样做是为了让这些单独的结果可以连接到第4个查询中。如何将多个视图合并到一个视图中

从我可以告诉,我需要做单独的查询到个人的意见,让他们都在一个查询中存在,但我不知道如何做到这一点。

我使用Microsoft SQL Server Management Studio中2010

查询1创建具有下列列结果:

AgencyID | Agency | Address | City 

查询2将创建这些列结果:

AgentID | AgencyID | Name | Address 

查询3创建具有这些列结果:

InsuredID | PolicyID | Name | Company 

查询4将创建这些列结果:

PolicyID | AgencyID | AgentID | InsuredID  

Eeach查询拥有全套的SELECTFROMWHEREORDER BY/GROUP BY语句。我需要将前三个查询(视图?)的结果加入到由第四个查询创建的视图中,该视图基于那里的列。

我知道如何设置一次我必须能够引用的观点,并加入了加入了。然而,我不知道该怎么做,是让它们变成可能发生的格式。

我希望把所有的一起到一个单一的表视图,从而使每行显示了相应的代理数据,保险数据和机构数据沿着政策信息。这是一种有效的甚至可行的方法吗?

INSERT INTO @Agency (AgencyID, Agency, Address, City) 
SELECT 
FROM 
WHERE 

INSERT INTO @Agent (AgentID, AgencyID, Name, Address) 
SELECT 
FROM 
WHERE 

INSERT INTO @Insured (InsuredID, PolicyID, Name, Company) 
SELECT 
FROM 
WHERE 

INSERT INTO @Policy (PolicyID, AgencyID, AgentID, InsuredID) 
SELECT 
FROM 
WHERE 

SELECT * 
FROM @Policy p 
JOIN @Agency ay ON ay.AgencyID = p.AgencyID 
JOIN @Agent at ON at.AgentID = p.AgentID 
JOIN @Insured i ON i.InsuredID = p.InsuredID 

有没有更好的方法来做到这一点,或者这似乎是一个可行的路线?我省略了选择,地方和其他内容的细节,因为它们与此特定问题无关。

有几种不同的方法可以做到这一点。

  • 您可以按照您的布局方式进行操作。
  • 您可以使用公用表表达式将所有四个前体查询拉入最终查询。
  • 您可以将前体查询封装在内联表值函数中,然后加入它们。
  • 您可以将前体查询封装到视图中,然后加入它们。

有可能是根据您选择的方法查询效率的细微差别;这将取决于你在前兆查询中所做的具体细节。

+0

好吧,我发现我需要声明的表,使其每我列举了顶部的布局工作。 – 2012-08-17 18:48:29