none
TRANSFORMAR SELECT EM TABELA E DELETAR OS REGISTROS QUE ATENDEM AS CONDIÇÕES ESPECIFICADAS RRS feed

  • Pergunta

  • OLÁ, BOA TARDE Á TODOS.

    TRABALHO COM A SEGUINTE QUERY ABAIXO, ONDE ELA ME TRAZ OS RESULTADOS IDENTICOS QUE TENHO EM DUAS TABELAS.

    MINHAS DÚVIDAS SÃO AS SEGUINTES:

    1 - ) EXISTE ALGUM MEIO DE FAZER ESSA CONSULTA JÁ GERAR UMA TABELA COM OS RESULTADOS QUE O SELECT IDENTIFICOU?

    2 - ) EM PARALELO A ISSO; AO MESMO TEMPO; DELETAR DAS TABELAS DE ORIGEM OS REGISTROS QUE ATENDERAM AS CONDIÇÕES ESPECIFICADAS NO SELECT; OU SEJA; OS RESULTADOS QUE FORAM EXIBIDOS NA CONSULTA?

    SEGUE ABAIXO QUERY QUE ESTÁ SENDO UTILIZADA:

    SELECT

    [TCONTA CONSOLIDADO].[third_party_name],
    [TCONTA CONSOLIDADO].[third_party_number],

    [TCONTA CONSOLIDADO].[trx_number_c],
    [TCONTA CONSOLIDADO].[trx_number_c],
    [TCONTA CONSOLIDADO].[Net],
    [TCONTA CONSOLIDADO].[Base Dados]
    FROM [TCONTA CONSOLIDADO]
    INNER JOIN [TCONTA2]
    ON [TCONTA CONSOLIDADO].[third_party_name]=[TCONTA2].[Razão Social] 
    AND [TCONTA CONSOLIDADO].[third_party_number]=[TCONTA2].[CNPJ]

    UNION

    SELECT

    [TCONTA2].[Razão Social],
    [TCONTA2].[CNPJ],
    [TCONTA2].[Título],
    [TCONTA2].[Cupom],
    [TCONTA2].[Valor Original],
    [TCONTA2].[Base Dados]
    FROM [TCONTA2]
    INNER JOIN [TCONTA CONSOLIDADO]
    ON [TCONTA2].[Razão Social]=[TCONTA CONSOLIDADO].[third_party_name]
    AND [TCONTA2].[CNPJ]=[TCONTA CONSOLIDADO].[third_party_number];

    MUITO OBRIGADO!!!

    HEBERT COST


    • Editado Hebert Cost segunda-feira, 13 de agosto de 2012 18:48
    segunda-feira, 13 de agosto de 2012 18:46

Respostas

  • Hebert,

    Respondendo suas dúvidas:

    1) Rode assim:

    SELECT

    [TCONTA CONSOLIDADO].[third_party_name],
    [TCONTA CONSOLIDADO].[third_party_number],

    [TCONTA CONSOLIDADO].[trx_number_c],
    [TCONTA CONSOLIDADO].[trx_number_c],
    [TCONTA CONSOLIDADO].[Net],
    [TCONTA CONSOLIDADO].[Base Dados] into NOME_TABELA_DESEJADA
    FROM [TCONTA CONSOLIDADO]
    INNER JOIN [TCONTA2]
    ON [TCONTA CONSOLIDADO].[third_party_name]=[TCONTA2].[Razão Social] 
    AND [TCONTA CONSOLIDADO].[third_party_number]=[TCONTA2].[CNPJ]

    UNION

    SELECT

    [TCONTA2].[Razão Social],
    [TCONTA2].[CNPJ],
    [TCONTA2].[Título],
    [TCONTA2].[Cupom],
    [TCONTA2].[Valor Original],
    [TCONTA2].[Base Dados]
    FROM [TCONTA2]
    INNER JOIN [TCONTA CONSOLIDADO]
    ON [TCONTA2].[Razão Social]=[TCONTA CONSOLIDADO].[third_party_name]
    AND [TCONTA2].[CNPJ]=[TCONTA CONSOLIDADO].[third_party_number];

    2) De uma forma mais simplória, usando o resultado do item 1, ficaria assim:

    SELECT 'DROP TABLE' + [coluna com o nome da tabela] FROM NOME_TABELA_DESEJADA


    Depois copie o resultado e execute-o. Para deixar tudo em um processo só crie uma procure/cursor com estes procedimentos.


    Marco Antônio Pinheiro / MCTS - MCC http://marcoantoniopinheiro.blogspot.com

    • Marcado como Resposta Harley Araujo quarta-feira, 15 de agosto de 2012 13:21
    segunda-feira, 13 de agosto de 2012 20:27
  • Hebert, para gerar uma tabela com o resultado da tua consulta, coloque o INTO logo abaixo o teu SELECT.

    Por exemplo:

    SELECT <campos....>

    INTO TabelaDestino

    From ....

    Agora, esse delete, ao mesmo tempo, não tem como... Execute o insert e depois o delete de acordo com os registros nessa nova tabela.

    Espero ter ajudado.

    []'s! 

    • Marcado como Resposta Harley Araujo quarta-feira, 15 de agosto de 2012 13:21
    segunda-feira, 13 de agosto de 2012 20:36

Todas as Respostas

  • Hebert,

    Respondendo suas dúvidas:

    1) Rode assim:

    SELECT

    [TCONTA CONSOLIDADO].[third_party_name],
    [TCONTA CONSOLIDADO].[third_party_number],

    [TCONTA CONSOLIDADO].[trx_number_c],
    [TCONTA CONSOLIDADO].[trx_number_c],
    [TCONTA CONSOLIDADO].[Net],
    [TCONTA CONSOLIDADO].[Base Dados] into NOME_TABELA_DESEJADA
    FROM [TCONTA CONSOLIDADO]
    INNER JOIN [TCONTA2]
    ON [TCONTA CONSOLIDADO].[third_party_name]=[TCONTA2].[Razão Social] 
    AND [TCONTA CONSOLIDADO].[third_party_number]=[TCONTA2].[CNPJ]

    UNION

    SELECT

    [TCONTA2].[Razão Social],
    [TCONTA2].[CNPJ],
    [TCONTA2].[Título],
    [TCONTA2].[Cupom],
    [TCONTA2].[Valor Original],
    [TCONTA2].[Base Dados]
    FROM [TCONTA2]
    INNER JOIN [TCONTA CONSOLIDADO]
    ON [TCONTA2].[Razão Social]=[TCONTA CONSOLIDADO].[third_party_name]
    AND [TCONTA2].[CNPJ]=[TCONTA CONSOLIDADO].[third_party_number];

    2) De uma forma mais simplória, usando o resultado do item 1, ficaria assim:

    SELECT 'DROP TABLE' + [coluna com o nome da tabela] FROM NOME_TABELA_DESEJADA


    Depois copie o resultado e execute-o. Para deixar tudo em um processo só crie uma procure/cursor com estes procedimentos.


    Marco Antônio Pinheiro / MCTS - MCC http://marcoantoniopinheiro.blogspot.com

    • Marcado como Resposta Harley Araujo quarta-feira, 15 de agosto de 2012 13:21
    segunda-feira, 13 de agosto de 2012 20:27
  • Hebert, para gerar uma tabela com o resultado da tua consulta, coloque o INTO logo abaixo o teu SELECT.

    Por exemplo:

    SELECT <campos....>

    INTO TabelaDestino

    From ....

    Agora, esse delete, ao mesmo tempo, não tem como... Execute o insert e depois o delete de acordo com os registros nessa nova tabela.

    Espero ter ajudado.

    []'s! 

    • Marcado como Resposta Harley Araujo quarta-feira, 15 de agosto de 2012 13:21
    segunda-feira, 13 de agosto de 2012 20:36