Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Mário Monteiro

Consulta SQL

Recommended Posts

galera tou com uma duvidae não consegui resolver de forma satisfatoriatenho duas tabelas relacionadasTABELA1 (CHAVE)TABELA2 (CHAVE,VALOR)a segunda tabela tem uma peculiaridade pois tem exatamente dois registros para cada chave da primeira tabelao que quero é uma consulta que retorne o seguinteCHAVE, VALOR1, VALOR2onde valor 1 e 2 sao os valores dos dois registros na segunda tabelabem como podem ver não pode seu um inner join da vida pois retornaria dois registros por CHAVE e preciso que retorne 1 registro com os dois valores...se alguem puder me ajudar a montar este SQL agradeço...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mario.Acho que se tentarmos com outras sub-selects iria funcionar.Tipo

Select        tabela1.chave,        valor1 = (Select top 1 valor1 from tabela2 where tabela1.chave= tabela2.chave order by tabela2.chave Asc),        valor2 = (Select top 1 valor1 from tabela2 where tabela1.chave= tabela2.chave order by tabela2.chave Desc)from        tabela1

Compartilhar este post


Link para o post
Compartilhar em outros sites

valew marcelota dando uns errinhos mas vou tentar a parada aqui...amanha retorno algo, pois já estou de saida...

Compartilhar este post


Link para o post
Compartilhar em outros sites

não funcionou marcelo...tentei usar na minha consulta e não encontrava os valores nem um dos dois....ai eu criei um db exatamente na situação proposta em cima pra ver se funcionava e tambem não funcionou...bem só mais uma coisa eu estou tentando executar esta consulta dentro do access mesmo, pois precisa ser lá, não pode ser no ASP...

Compartilhar este post


Link para o post
Compartilhar em outros sites

da uma olhada e ve se é o que tava querendono exemplo que fiz ele vai retorna o nome do cliente, total de pedidos e ultimo pedidoai é só ajusta pro que você precisaSELECT nome, (SELECT Count(*) FROM Pedidos) AS Total, (SELECT MAX(numero) FROM Pedidos) AS MaiorPedido FROM Clientes GROUP BY nome, Total, MaiorPedido

Compartilhar este post


Link para o post
Compartilhar em outros sites

Segue um um SELECT desenvolvido por um amigo meu que eu pedi pra ele ver se sabia resolver essa parada ai e olha o código

SELECT TABELA1.CHAVE, (SELECT TOP 1 TABELA2.VALOR FROM TABELA2 WHERE TABELA2.CHAVE = TABELA1.CHAVE ORDER BY TABELA2.VALOR ASC) AS VALOR1, (SELECT TOP 1 TABELA2.VALOR FROM TABELA2 WHERE TABELA2.CHAVE = TABELA1.CHAVE ORDER BY TABELA2.VALOR DESC) AS VALOR2 FROM TABELA1

ve se funfa ...foi testado no SQL e funcionou ..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dando uma pequena mudada no código do marcelo. Ve se dá:

 

Select        tabela1.chave,        (Select top 1 valor1 from tabela2 where tabela1.chave= tabela2.chave order by tabela2.chave Asc) as valor1,        (Select top 1 valor1 from tabela2 where tabela1.chave= tabela2.chave order by tabela2.chave Desc) as valor2from        tabela1

Compartilhar este post


Link para o post
Compartilhar em outros sites

SELECT TABELA1.CHAVE, (SELECT TOP 1 TABELA2.VALOR FROM TABELA2 WHERE TABELA2.CHAVE = TABELA1.CHAVE ORDER BY TABELA2.VALOR ASC) AS VALOR1, (SELECT TOP 1 TABELA2.VALOR FROM TABELA2 WHERE TABELA2.CHAVE = TABELA1.CHAVE ORDER BY TABELA2.VALOR DESC) AS VALOR2 FROM TABELA1

funcionou perfeitamente kaue

 

Dando uma pequena mudada no código do marcelo. Ve se dá:

 

Select        tabela1.chave,        (Select top 1 valor1 from tabela2 where tabela1.chave= tabela2.chave order by tabela2.chave Asc) as valor1,        (Select top 1 valor1 from tabela2 where tabela1.chave= tabela2.chave order by tabela2.chave Desc) as valor2from        tabela1
não entendi porque não funcionou...

 

você chegou a testar???

 

valew galera...

Compartilhar este post


Link para o post
Compartilhar em outros sites

opaa beleza . boa sorte ai com esse SELECT ...o dele naum funcionou pq ele está ordenando por chave e tem que ordenar por valor ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

mesmo mudando isso não funcionou...

Compartilhar este post


Link para o post
Compartilhar em outros sites

mesmo mudando isso não funcionou...

<{POST_SNAPBACK}>

Acho que o problema eram os nomes dos campos. No código do Marcelo nóis tamo usando

 

Select top 1 valor1 from tabela2
ao invés de

 

SELECT TOP 1 TABELA2.VALOR FROM TABELA2
Acho que deve ser só isso. O resto parece que tá identico.

Compartilhar este post


Link para o post
Compartilhar em outros sites

pior que eu testei isso... e não tinha dado...mas nem posso confirmar pois ja apaguei...só tou agora com o codigo passado pelo kaue e ainda nem usei na minha aplicação, apenas no teste...acho que vou usar na real mesmo amanha...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.