domingo, 13 de agosto de 2023

INSERT INTO COM VÁRIOS SELECTsInsert into ... values ( SELECT ... FROM ... )


INSERT INTO ... VALUES ( SELECT ... FROM ... )


INSERT INTO SELECT

A instrução copia dados de uma tabela e insere em outra tabela.

A declaração exige que os tipos de dados nas tabelas de origem e de destino correspondem


Sintaxe:

INSERT INTO table2
SELECT * FROM table1
WHERE condition;


Copiar algumas colunas

INSERT INTO table2 (column1, column2, column3, ...)
SELECT column1, column2, column3, ...
FROM table1
WHERE condition;


Exemplo:

INSERT INTO Customers (CustomerName, City, Country)
SELECT SupplierName, City, Country FROM Suppliers;


Mas, se desejar você pode usar vários selects:

SET DATEFORMAT dmy

DROP TABLE IF EXISTS #tmpExtatistica;

CREATE TABLE #tmpExtatistica
(

    totalCB22 smallint null,
    totalCB21 smallint null,
    totalCB58 smallint null
)

INSERT INTO #tmpExtatistica (totalCB22, totalCB21, totalCB58) --, totalmes, media)
VALUES (

        (SELECT

            Count(Colpo_DigitacaoLaudo10) as totalCB22

            FROM colpo_DigitacaoLaudo

            WHERE Colpo_DigitacaoLaudoDataCadastro BETWEEN '01/01/2023' and '30/08/2023'

                AND Colpo_DigitacaoLaudo10 LIKE '%CB22%'

        )
        ,
        (SELECT

            Count(Colpo_DigitacaoLaudo10) as totalCB21

            FROM colpo_DigitacaoLaudo

            WHERE Colpo_DigitacaoLaudoDataCadastro BETWEEN '01/01/2023' and '30/08/2023'

                AND Colpo_DigitacaoLaudo10 LIKE '%CB21%'

        )  
        ,
        (SELECT

            Count(Colpo_DigitacaoLaudo10) as totalCB58

            FROM colpo_DigitacaoLaudo

            WHERE Colpo_DigitacaoLaudoDataCadastro BETWEEN '01/01/2023' and '30/08/2023'

                AND Colpo_DigitacaoLaudo10 LIKE '%CB58%'

        )  


)  

SELECT *
FROM #tmpExtatistica


Espero ter ajudado e até a próxima






Nenhum comentário:

Postar um comentário