我有一个查询,它有多个选择语句来生成几组不同的结果。它基本上是一组 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
每个查询都有一整套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
有没有更好的方法来做到这一点,或者这似乎是一条可行的路线?我省略了选择、位置和其他内容的详细信息,因为它们与这个特定问题无关。