Как объединить 8 SQL запросов в одном наборе результатов? - PullRequest
0 голосов
/ 04 апреля 2019

У меня ниже 8 скриптов T-SQL, которые я запустил в базу данных и сохранил их вывод в таблицу, как мы можем написать один запрос из этих скриптов 8 sql, чтобы я мог выполнить его все один раз и сохранить результатывнутри таблицы с помощью SSIS?Есть ли способ объединить все приведенные ниже SQL-скрипты?Нам необходимо добиться этого, чтобы решить процесс ручного выполнения каждого из запросов по одному и сохранения данных внутри таблицы.

Ответы [ 3 ]

2 голосов
/ 04 апреля 2019

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
. . . 
0 голосов
/ 04 апреля 2019

То, что все остальные сказали. Вы также можете выбросить каждый отдельный набор результатов во временную таблицу или что-то в этом роде, если это дает вам преимущество в другом месте вашего сценария.

0 голосов
/ 04 апреля 2019

В вашем случае вам нужно сделать столбец одинаковым во всех запросах, так как количество столбцов равно 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]..
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...