none
AGREGAR REGISTROS DE DIFERENTES TABELA ORDERNANDO RRS feed

  • Pergunta

  • Boas pessoal, mais uma vez eu vindo aqui pedir ajudar aos senhores!

    o que acontecê é assim:

    vamos supor que eu tenho varias tabelas que cada uma delas representa uma parte de um sistema + ou - nessa estrutura:

    --essa tabela sempre vai ter o primeiro campo identificado do registro no caso abaixo o 00

    reg|id|campo1|campo1| -- e por ai vai 

    00|123|texto1|texto2| --.....

    e nisso tem outras tabelas de registros diferentes

    reg|id|campo1|campo1|

    10|123|texto1|texto2| 

    --

    reg|id|campo1|campo1|

    20|123|texto1|texto2| 

    e por ai vai aumentando o registro ate o 90

    a pergunta é como posso juntar as linhas ficando assim em um unico arquivo ?

    reg|id|campo1|campo1|

    00|123|texto1|texto2|

    10|123|texto1|texto2|

    20|123|texto1|texto2| 

    00|999|texto1|texto2|

    10|999|texto1|texto2|

    20|999|texto1|texto2| 

    Esqueci de falar no caso nao vai ter nomes de colunas 

    • Editado Uelson.Jr terça-feira, 10 de setembro de 2013 19:31 retificar
    terça-feira, 10 de setembro de 2013 19:27

Respostas

  • Boa tarde,

    Experimente utilizar Union All mais ou menos dessa forma:

    select reg, id, campo1, campo2 from Tabela1
    union all
    select reg, id, campo1, campo2 from Tabela2
    union all
    select reg, id, campo1, campo2 from Tabela3
    
    order by id, reg

    Espero que ajude.


    Assinatura: http://www.imoveisemexposicao.com.br


    • Sugerido como Resposta Leonardo N. D'Amato terça-feira, 10 de setembro de 2013 19:43
    • Editado gapimex terça-feira, 10 de setembro de 2013 20:03
    • Marcado como Resposta Uelson.Jr quarta-feira, 11 de setembro de 2013 18:02
    terça-feira, 10 de setembro de 2013 19:34

Todas as Respostas

  • Boa tarde,

    Experimente utilizar Union All mais ou menos dessa forma:

    select reg, id, campo1, campo2 from Tabela1
    union all
    select reg, id, campo1, campo2 from Tabela2
    union all
    select reg, id, campo1, campo2 from Tabela3
    
    order by id, reg

    Espero que ajude.


    Assinatura: http://www.imoveisemexposicao.com.br


    • Sugerido como Resposta Leonardo N. D'Amato terça-feira, 10 de setembro de 2013 19:43
    • Editado gapimex terça-feira, 10 de setembro de 2013 20:03
    • Marcado como Resposta Uelson.Jr quarta-feira, 11 de setembro de 2013 18:02
    terça-feira, 10 de setembro de 2013 19:34
  • Opa gapimex, ai que esta o problema elas nao tem a mesma estrutura e o arquivo teria que ser gerado dessa 

    forma, pq o sistema é assim que ele obedece os reg (00,10,20,30...)e cada linha  e o id tem sempre que estar correspondente tipo. falamos  que o id é 9090 ai ficaria assim

    00|9090

    10|9090

    20|9090

    20|9090

    20|9090

    30|9090 ......

    90|9090

    00|0505

    10|0505 ....

    e assim continua ate o 90 ai isso se repete para os proximo id sempre obedecendo essa estrutura 

    terça-feira, 10 de setembro de 2013 19:41
  • As tabelas podem ter estruturas diferentes, mas a quantidade de colunas retornada por cada Select deve ser igual, e os tipos de dados das colunas devem ser similares:

    http://www.w3schools.com/sql/sql_union.asp

    Espero que ajude.


    Assinatura: http://www.imoveisemexposicao.com.br

    terça-feira, 10 de setembro de 2013 20:02
  • Se o tipo do campo é incompatível você pode tentar utilizar a função Cast ou Convert para converter o campo para um tipo que seja compatível.

    Espero que ajude.


    Assinatura: http://www.imoveisemexposicao.com.br

    terça-feira, 10 de setembro de 2013 20:49
  • Gapimex consegui, so que nem eu te falei certos reg ficaram com campos a mais por exemplo o reg00 por padrao tem 50 e reg10 tem 100 ambos ficaram igual agora eu preciso exportar para um arquivo .txt teria alguma forma de fazer assim onde for reg00 exportar ate o campo 50 e onde for reg10 ate o 100 e assim segue, isso sem tirar da ordem nao sei se é possivel fazer pelo ssis

    quarta-feira, 11 de setembro de 2013 15:06
  • Desculpe Uelson mas não consigo ajuda-lo na questão de exportação para um txt. Se ninguem ajuda-lo talvez seja melhor você abrir outro tópico específico sobre a exportação.

    A única coisa que posso dizer e que talvez seja útil ao exportar é que você pode adicionar uma coluna no resultado da query acima para saber a quantidade de colunas a ser processada para cada linha. Ex:

    select 4 as QtdCampos, reg, id, campo1, campo2, null from Tabela1
    union all
    select 5, reg, id, campo1, campo2, campo3 from Tabela2
    union all
    select 3, reg, id, campo1, null, null from Tabela3
    
    order by id, reg

    Espero que ajude.


    Assinatura: http://www.imoveisemexposicao.com.br

    quarta-feira, 11 de setembro de 2013 17:58
  • Tendi, obrigado pela ajuda!
    quarta-feira, 11 de setembro de 2013 18:02