none
Juntar e Ordenar Dados RRS feed

  • Pergunta

  • Boas..

     

    Tenho duas tabelas que têm um campo data, onde não existe relacionamento entre elas..

    E gostava de fazer o seguinte:

    Ordenar os valores de data dos dois e mostrá-los ordenados pela data..

     

    Exemplo:

     

    Tabela1

    01/02/2007 -  5,5

    05/04/2007 -  8

     

    Tabela2

    02/03/2007 - 7

    05/08/2007 - 10

     

    Resultado pretendido

    01/02/2007 -  5,5

    02/03/2007 - 7

    05/04/2007 -  8

    05/08/2007 - 10

     

    Obrigado desde já pela ajuda...

     

    sexta-feira, 28 de dezembro de 2007 16:04

Respostas

  • ae.. eu não se isso te ajuda..

     

    mais vc pode fazer um select com union

     

    (Select Data, valor from Tabela1

    union

    Select Data, valor from Tabela2)

    order by Data

     

    veja se isso te ajuda

    []s

    sexta-feira, 28 de dezembro de 2007 16:09
  • Oi Vitor;

    Você pode resolver este seu caso usando um select na primeira tabela e um UNION ALL com outro select na segunda tabela. Como no exemplo a seguir:

    select campo_data_tabela1, campo_tabela1
    from tabela1
    union all
    select campo_data_tabela2, campo_tabela2
    from tabela2
    order by 1

    Veja se este exemplo pode ser útil.

    Se você julgar melhor você pode colocar este código em uma procedure.

    []s
    sexta-feira, 28 de dezembro de 2007 16:13
  •  

    Obrigado aos 2..

    Serve a resposta..

     

    Só notei algumas coisas que não sei se são normais..

    O número de campos a unir tem de ser o mesmo e têm de ser do mesmo tipo.

     

    sexta-feira, 28 de dezembro de 2007 16:16
  • O Nome  da coluna não importa muito.. mais os tipos tem que ser iguais data com data.. numero com numero..se não ele dá erro de conversão..

    ou vc pode criar uma tabela temporaria e jogar os conteudos das tabelas para essa tabela.. e acrescentar novos campo..

     

    []s

     

    sexta-feira, 28 de dezembro de 2007 16:19

Todas as Respostas

  • ae.. eu não se isso te ajuda..

     

    mais vc pode fazer um select com union

     

    (Select Data, valor from Tabela1

    union

    Select Data, valor from Tabela2)

    order by Data

     

    veja se isso te ajuda

    []s

    sexta-feira, 28 de dezembro de 2007 16:09
  • Oi Vitor;

    Você pode resolver este seu caso usando um select na primeira tabela e um UNION ALL com outro select na segunda tabela. Como no exemplo a seguir:

    select campo_data_tabela1, campo_tabela1
    from tabela1
    union all
    select campo_data_tabela2, campo_tabela2
    from tabela2
    order by 1

    Veja se este exemplo pode ser útil.

    Se você julgar melhor você pode colocar este código em uma procedure.

    []s
    sexta-feira, 28 de dezembro de 2007 16:13
  •  

    Obrigado aos 2..

    Serve a resposta..

     

    Só notei algumas coisas que não sei se são normais..

    O número de campos a unir tem de ser o mesmo e têm de ser do mesmo tipo.

     

    sexta-feira, 28 de dezembro de 2007 16:16
  •  

    Não é possivel mostrar de que tabela a linha de resgisto pertence, pois não?

    sexta-feira, 28 de dezembro de 2007 16:18
  • O Nome  da coluna não importa muito.. mais os tipos tem que ser iguais data com data.. numero com numero..se não ele dá erro de conversão..

    ou vc pode criar uma tabela temporaria e jogar os conteudos das tabelas para essa tabela.. e acrescentar novos campo..

     

    []s

     

    sexta-feira, 28 de dezembro de 2007 16:19
  • respondendo a sua pergunta.. vc pode fazer assim

     

    (Select Data, valor, 'Tabela1' as Origem  from Tabela1

    union

    Select Data, valor, 'Tabela2' as Origem from Tabela2)

    order by Data

     

    []s
    sexta-feira, 28 de dezembro de 2007 16:21
  • Mais uma vez obrigado..

    Dúvida resolvida...

    sexta-feira, 28 de dezembro de 2007 16:23

  • Vitor;

    A quantidade campos nos dois selects tem que ser a mesma assim como os tipo tem que ser compativeis.

    Uma solução para mostrar de qual tabela vem é adicionar um 3º campo em cada select, ficando da seguinte forma:


    select campo_data_tabela1, campo_tabela1, 'tabela1' as nome_tabela
    from tabela1
    union all
    select campo_data_tabela2, campo_tabela2, 'tabela2'
    from tabela2
    order by 1
    sexta-feira, 28 de dezembro de 2007 16:24
  • Ricardo;

     

    Me desculpa se fui meio entrometido, é que enquanto eu respondia a pergunta do Vitor você deve que já estava respondendo. Reparem que as respostas estão uam em cada minuto. Desculpa ai. O importante é que o Vitor encontrou a solução que esperava.

     

    []s.

    sexta-feira, 28 de dezembro de 2007 16:27
  • Que isso.. o importante e ajudar ele e tb ir relembrando conceitos.. que não é sempre que eu uso..

     

    Abraços

    sexta-feira, 28 de dezembro de 2007 16:33