MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    [Resolvido]União de Consutas (Union)

    Compartilhe
    avatar
    Rafael Silva
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 590
    Registrado : 15/11/2011

    União de Consutas (Union)

    Mensagem  Rafael Silva em Ter 05 Mar 2013, 17:00

    Boa Tarde !

    É possível unir duas consultas usando tabela temporária ?
    Nao sei se o conceito de tabela temporária no Access é o mesmo no SqlServer mas eu usava no dessa forma no Sqlserver..


    DECLARE @MinhaTabelaTemporaria TABLE
    (Campo1,Campo2 )
    INSERT INTO @MinhaTabelaTemporaria
    SELECT Campo1,Campo2
    FROM @MinhaTabela

    Minha Idea era fazer uma consulta normal e depois Unir com um resultado de o resultado da tabela temporaria

    Eu sei que se eu fizer duas consulta consulta consigo Uni-las como vi aqui mesmo no forum
    [Você precisa estar registrado e conectado para ver este link.]

    Mas queria fazer tudo dentro de uma mesma consulta


    Pra voces terem uma nocao do que pretendo fazer (Se possivel) segue uma parte do codigo da minha query quando usar Sqlserver.

    [Você precisa estar registrado e conectado para ver este link.]

    Saudacoes!


    .................................................................................
    "Nunca abaixe a cabeça para ninguém,
    nem levante o nariz demais, olho no olho já é o suficiente."
    avatar
    good guy
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1119
    Registrado : 05/02/2010

    União de Consultas (Union)

    Mensagem  good guy em Ter 05 Mar 2013, 20:34

    Olá Rafael,

    Estude o que é UNION e UNION ALL.

    UNION
    A cláusula UNION se aplica para selecionar informação relacionada a partir de duas tabelas, parecido com a cláusula JOIN. No entanto, quando se aplica a cláusuLa UNION todas as colunas selecionadas precisam ser do mesmo tipo de dados. Além disso, com UNION, apenas valores únicos ou distintos são selecionados.

    UNION ALL

    A cláusula UNION ALL se assemelha à cláusula UNION, exceto pelo fato de que UNION ALL seleciona todos os valores.
    A diferença entre UNION e UNION ALL está no fato de que UNION ALL não eliminará os registros duplicados, em vez disso, exibe todos os registros das tabelas que integram a sua consulta e os combina em uma única tabela.

    Uma cláusula UNION efetivamente retorna uma seleção do tipo SELECT DISTINCT no resultado.
    NOTA: Se você já souber que todos os registros que se pretende buscar são únicos nesta união, use UNION ALL em vez disso, apresenta resultados mais rápidos.
    Exemplos:
    SELECT Nome FROM tbClientes UNION SELECT Nome FROM tbFornecedores ORDER BY Nome
    Resultado, Observe que Marcelo Machado aparece apenas uma única vez:
    Nome

    Fernando César
    Gustavo Tannure
    Luccas Borges
    Paulo Sérgio
    Marcelo Machado

    UNION ALL
    SELECT Nome from tbClientes UNION ALL SELECT Nme from tbFornecedores ORDER BY Nome
    Resultado, observe que Marcelo Machado aparece duas vezes:

    Nome

    Luccas Borges
    Fernando César
    Paulo Sérgio
    Gustavo Tannure
    Marcelo Machado
    Marcelo Machado

    Extraído do artigo SQL UMA ABORDAGEM INTERESSANTE do site
    [Você precisa estar registrado e conectado para ver este link.]
    avatar
    Rafael Silva
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 590
    Registrado : 15/11/2011

    Re: [Resolvido]União de Consutas (Union)

    Mensagem  Rafael Silva em Ter 05 Mar 2013, 23:28

    Excelente Material Good Guy!

    Você tem alguma material desse referente a tabela temporária no Access ?


    Funciona dessa forma ?

    DECLARE @MinhaTabelaTemporaria TABLE
    (Campo1,Campo2 )
    INSERT INTO @MinhaTabelaTemporaria
    SELECT Campo1,Campo2
    FROM @MinhaTabela

    Teste mas da erro!

    Saudações!


    .................................................................................
    "Nunca abaixe a cabeça para ninguém,
    nem levante o nariz demais, olho no olho já é o suficiente."
    avatar
    good guy
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1119
    Registrado : 05/02/2010

    União de Consultas (Union)

    Mensagem  good guy em Qui 07 Mar 2013, 13:33

    Sinto muito Rafael,

    Mas desconheço no momento o assunto. Dê uma olhada no site do Avelino Sampaio, talvez você encontre o que procura.

    [Você precisa estar registrado e conectado para ver este link.]
    avatar
    Cláudio Más
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1243
    Registrado : 21/01/2012

    Re: [Resolvido]União de Consutas (Union)

    Mensagem  Cláudio Más em Qui 07 Mar 2013, 14:11

    Olá,

    O exemplo que citou foi feito em Transact-SQL usando o tipo de dados TABLE, que é específico do SQL Server, e portanto não poderá referenciá-lo a partir do Access.

    No Access terá que criar fisicamente as tabelas, mesmo para uso temporário.
    Lembro de ter visto um exemplo de código VBA utilizando matrizes para armazenar e recuperar dados simulando uma tabela temporária, mas não creio que vale o esforço.
    avatar
    Rafael Silva
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 590
    Registrado : 15/11/2011

    Re: [Resolvido]União de Consutas (Union)

    Mensagem  Rafael Silva em Qui 07 Mar 2013, 15:41

    Sem querer estender muito o tópico que ja esta resolvido...

    Good Guy eu já baixei a aplicativo do Avelino(Maestro)seguindo a orientação em um outro tópico e nao conseguir identificar onde exatamente esta usando tabela temporária(Ate porque eu nunca usei)


    Claudio Mesmo eu criando as tabelas fisicamente e trabalhando com tabelas temporária tem algum ganho de performance ?
    Você tem algum exemplo de tabela temporária disponível ?


    Agradeço a atenção de todos !
    Saudações!


    .................................................................................
    "Nunca abaixe a cabeça para ninguém,
    nem levante o nariz demais, olho no olho já é o suficiente."
    avatar
    Cláudio Más
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1243
    Registrado : 21/01/2012

    Re: [Resolvido]União de Consutas (Union)

    Mensagem  Cláudio Más em Qui 07 Mar 2013, 20:37

    Se um mesmo problema pode ser solucionado pelas duas formas (com e sem uso de tabela temporária), não dá pra afirmar qual seria a mais performática.
    Cada caso é um caso. Mas a princípio, no Access é mais oneroso.

    Tabela temporária é mais um conceito a ser aplicado em lógica de programação. A não ser no SQL Server, onde é mesmo um recurso.

    Se no Access vc criar uma tabela via vba, e depois de utilizá-la, excluí-la, então estará utilizando tabela temporária.
    Para isso, pode-se utilizar a consulta do tipo "criar tabela".
    Se vc já fez algo parecido, então já tem um exemplo.

    Não sei se fui claro, e se era essa a sua dúvida.

      Data/hora atual: Seg 23 Abr 2018, 03:03