none
Duvida Tabela temporaria RRS feed

  • Pergunta

  • Pessoal,

    estou começando com SQL porem ainda tenho dificuldades com tbl temporaria e preciso da ajuda de vcs...

    Eu tenho o select abaixo e preciso que o retorno dele venha em apenas um campo em uma tbl temporaria é possivel?

    o retorno do select abaixo é

    1.1    0449881    PED-12025-NKMF    1590.00    12.075471698    Faturado

    logo são 6 colunas e preciso que venha em uma linha e coluna só dentro de uma tabela temporaria.

    IF(EXISTS(

    SELECT *
    FROM   OPENROWSET('SQLNCLI',
                      'SERVIDOR';'teste';'teste', 'SELECT p1.empcod,
            p1.pedvendanum,
            p1.userpedvendacrm,
            p.pedvendavaltotal valor_total,
            p.pedvendamarkup margem,
            p.pedvendastatdescr status
    FROM  ped_venda1 p1
          INNER JOIN ped_venda p
            ON p1.pedvendanum = p.pedvendanum
    WHERE userpedvendacrm = ''PED-12025-NKMF'''
    )
    ))
    BEGIN

    SELECT *
    FROM   OPENROWSET('SQLNCLI',
                      'SERVIDOR';'teste';'teste', 'SELECT p1.empcod,
            p1.pedvendanum,
            p1.userpedvendacrm,
            p.pedvendavaltotal valor_total,
            p.pedvendamarkup margem,
            p.pedvendastatdescr status
    FROM  ped_venda1 p1        
            INNER JOIN ped_venda p
                ON p1.pedvendanum = p.pedvendanum
    WHERE userpedvendacrm = ''PED-12025-NKMF'''
    )

    END

    ELSE

    BEGIN

    IF (EXISTS(

    SELECT ordernumber, dthrgravacao, dthrleitura, flprocessado FROM salesorder where ordernumber = 'PED-12025-NKMF'
    and  flprocessado <> 'N'

    ))

    BEGIN

    SELECT ordernumber, dthrgravacao, dthrleitura, flprocessado FROM salesorder where ordernumber = 'PED-12025-NKMF'
    and  flprocessado <> 'N'

    END

    ELSE

    BEGIN

    SELECT *

    FROM   OPENROWSET('SQLNCLI',
                      'SERVIDOR';'teste';'teste', 'select * from log_integracao where loginttabela like ''%PED-12787-XDWR%'''
    )

    Print 'Pedido Não encontrado'

    END

    END


    segunda-feira, 2 de abril de 2012 14:18

Respostas

  • Boa tarde Renata,

    Acho que neste casodaria para você usar o insert com select.

    INSERT INTO TBL_TEMP
    SELECT *
     FROM   OPENROWSET('SQLNCLI',
                             'SERVIDOR';'teste';'teste',CT p1.empcod,
             p1.pedvendanum, 
            p1.userpedvendacrm, 
            p.pedvendavaltotal valor_total, 
            p.pedvendamarkup margem, 
            p.pedvendastatdescr status
     FROM  ped_venda1 p1        
             INNER JOIN ped_venda p 
                ON p1.pedvendanum = p.pedvendanum 
    WHERE userpedvendacrm = ''PED-12025-NKMF'''

    Veja se te ajuda,

    Abçs

    Adriano


    segunda-feira, 2 de abril de 2012 19:44
  • Boa tarde Renata,

    Segue um exemplo bem simples de como inserir em uma temporária.... Assim como no exemplo do colega Adriano.

    --!Temporarias para exemplo
    create table #tabelaorigem (A VARCHAR(50), B VARCHAR(50), C VARCHAR(50))
    create table #temporaria (NOME VARCHAR(50))
    
    --!Valores para teste
    INSERT INTO #tabelaorigem (A,B,C) VALUES ('RAFAEL', 'S', 'MELO')
    SELECT * FROM #tabelaorigem
    
    --insiro na temporaria
    INSERT INTO #temporaria(
    	NOME)
    SELECT 
    	--Concateno
    	A+ ' '+B+' '+C
    FROM #tabelaorigem
    
    --!Minha temporaria
    SELECT * FROM #temporaria
    At.
    Rafael

    • Marcado como Resposta Renata Cardoso terça-feira, 3 de abril de 2012 13:51
    segunda-feira, 2 de abril de 2012 20:03

Todas as Respostas

  • Boa tarde Renata...

    Vc disse que o retorno do seu select são 6 colunas e uma linha, certo? Você não poderia concatená-las formando uma só coluna e uma só linha?

    At.
    rafael

    segunda-feira, 2 de abril de 2012 19:15
  • Poderia sim, mas a minha principal duvida é como jogar o resultado em uma tabela temporaria...

    segunda-feira, 2 de abril de 2012 19:28
  • Boa tarde Renata,

    Acho que neste casodaria para você usar o insert com select.

    INSERT INTO TBL_TEMP
    SELECT *
     FROM   OPENROWSET('SQLNCLI',
                             'SERVIDOR';'teste';'teste',CT p1.empcod,
             p1.pedvendanum, 
            p1.userpedvendacrm, 
            p.pedvendavaltotal valor_total, 
            p.pedvendamarkup margem, 
            p.pedvendastatdescr status
     FROM  ped_venda1 p1        
             INNER JOIN ped_venda p 
                ON p1.pedvendanum = p.pedvendanum 
    WHERE userpedvendacrm = ''PED-12025-NKMF'''

    Veja se te ajuda,

    Abçs

    Adriano


    segunda-feira, 2 de abril de 2012 19:44
  • Boa tarde Renata,

    Segue um exemplo bem simples de como inserir em uma temporária.... Assim como no exemplo do colega Adriano.

    --!Temporarias para exemplo
    create table #tabelaorigem (A VARCHAR(50), B VARCHAR(50), C VARCHAR(50))
    create table #temporaria (NOME VARCHAR(50))
    
    --!Valores para teste
    INSERT INTO #tabelaorigem (A,B,C) VALUES ('RAFAEL', 'S', 'MELO')
    SELECT * FROM #tabelaorigem
    
    --insiro na temporaria
    INSERT INTO #temporaria(
    	NOME)
    SELECT 
    	--Concateno
    	A+ ' '+B+' '+C
    FROM #tabelaorigem
    
    --!Minha temporaria
    SELECT * FROM #temporaria
    At.
    Rafael

    • Marcado como Resposta Renata Cardoso terça-feira, 3 de abril de 2012 13:51
    segunda-feira, 2 de abril de 2012 20:03