我有一个查询,它有多个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查询包含一整套SELECT
,FROM
,WHERE
和ORDER 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
是否有更好的方法可以做到这一点,或者这似乎是一条可行的路线?我遗漏了select,where和其他内容的细节,因为它们与这个特定问题无关。
答案 0 :(得分:2)
有几种不同的方法可以做到这一点。
根据您选择的方法,查询效率可能会有细微差别;这在某种程度上取决于你在前驱查询中所做的具体细节。