如何将8个sql查询合并为一个结果集?

时间:2019-04-04 12:31:54

标签: sql-server azure-sql-database

我有以下8个T-SQL脚本,我将其运行到数据库中并将输出存储到spredsheet中,我们如何才能从这8个sql脚本中编写单个查询,以便我可以全部运行一次并存储结果在表内使用SSIS?有什么办法可以组合下面所有的SQL脚本?为了解决手动运行每个查询并将数据存储在spreedsheet中的手动过程,我们需要做到这一点。

3 个答案:

答案 0 :(得分:2)

想到了

UNION ALL

SELECT MB.Member_Board_SName, ISNULL(A.[HeadCount],0) [HeadCount]
FROM . . 
UNION ALL
SELECT MB.Member_Board_SName, ISNULL(A.[HeadCount],0)
FROM . . . 
UNION ALL
. . . 

答案 1 :(得分:0)

其他人说的话。您也可以将每个结果集放入临时表或其他内容中,如果这样做可以在脚本的其他地方提供好处。

答案 2 :(得分:-1)

在这种情况下,您需要使所有查询中的列相同,因为所有查询中的列数均为2,因此您可以简单地使用UNION ALL,它将在输出时返回所有查询结果。

专门为您准备的是:

WITH CertLevelParticipation AS
(
    SELECT
        MOC.ABMSUID,
        C.Member_Board_Id,
        MOC.Certificate_ID
    FROM 
        MOCParticipation MOC
    INNER JOIN 
        Certificate C ON MOC.Certificate_ID = C.Certificate_Id
    WHERE 
        MOC.Participating_Type = 'Y'
)
SELECT
    MB.Member_Board_SName,
    ISNULL(A.[HeadCount], 0) [HeadCount]..

UNION ALL 

SELECT
    MB.Member_Board_SName,
    ISNULL(A.[HeadCount], 0) [HeadCount]..

UNION ALL 

SELECT
    MB.Member_Board_SName,
    ISNULL(A.[HeadCount], 0) [HeadCount]..

UNION ALL 

SELECT
    MB.Member_Board_SName,
    ISNULL(A.[HeadCount], 0) [HeadCount]..

UNION ALL 

SELECT 
    MB.Member_Board_SName,  
    COUNT(DISTINCT ABMSUID) AS [HeadCount]..

UNION ALL 

SELECT 
    MB.Member_Board_SName,
    COUNT(DISTINCT ABMSUID) as [HeadCount]..

UNION ALL 

SELECT
    MB.Member_Board_SName,
    COALESCE(A.[HeadCount], B.[HeadCount], 0) AS [HeadCount]..

UNION ALL 

SELECT
    MB.Member_Board_SName,
    COALESCE(A.[HeadCount], B.[HeadCount], 0) AS [HeadCount]..